Java 组合框的不安全操作

Java Unsafe Operations with Combo Boxes

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

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

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

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

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

ConverterFrame.java:88: 警告:[未检查] 未检查调用 DefaultComboBoxModel(E[]) 作为原始类型 DefaultComboBoxModel

的成员

此行然后指向所提供代码第二行的 "new"。我知道我需要添加一个对象类型,但我不确定添加到哪里以及如何添加。

使用它来避免警告消息

JComboBox<String> startingCombo = new JComboBox<>();

JComboBoxDefaultComboBoxModel 都有一个通用类型参数来表示它们的项目类型。您想要 String 项,因此写

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