This question already has answers here:
What causes javac to issue the “uses unchecked or unsafe operations” warning
                                
                                    (11个答案)
                                
                        
                在8个月前关闭。
            
        

我知道以前曾问过这个问题,但是我找不到解决组合框问题的方法。我有以下代码:

...
JComboBox startingCombo = new JComboBox();
startingCombo.setModel(new DefaultComboBoxModel(new String[] {"USD", "EUR", "GBP"}));
...


从命令行运行时出现错误:

注意:ConverterFrame.java使用未经检查或不安全的操作。
注意:使用-Xlint:unchecked重新编译以获取详细信息。

当我使用-Xlink:Unchecked重新编译时,收到以下几个错误:

ConverterFrame.java:88:警告:作为原始类型DefaultComboBoxModel的成员,对[DefaultComboBoxModel(E [])的未选中的调用)

然后,此行在提供的代码的第二行上指向“新”。我知道我需要添加一个对象类型,但是我不确定在哪里添加以及如何添加。

最佳答案

JComboBoxDefaultComboBoxModel都具有用于其项目类型的通用类型参数。您想要String项目,所以写

JComboBox<String> startingCombo = new JComboBox<>();
startingCombo.setModel(new DefaultComboBoxModel<String>(new String[] {"USD", "EUR", "GBP"}));

09-25 20:15