JCombobox - 在参数化时添加2d String-array没有成功

时间:2014-07-30 18:09:20

标签: java swing generics jcombobox

如果我实例化Swing的JCombobox类并将String [] [] - 项添加到它 - 除了我收到以下警告之外没有问题:

JComboBox是原始类型。应该对泛型JComboBox的引用进行参数化。

嗯 - 我以下列方式参数化对象

private JComboBox <String[][]> myComboBox = new JComboBox <String[][]> ();

首先看起来很好,因为警告消失了,但是当我想要从String [] [] - 对象

添加项目时出现错误
 myComboBox.addItem(this.stringList[i][1]);

errormessage的:

 *the method addItem(String[][]) in the type JComboBox <String[][]> is not applicable for the arguments (String).*

我做错了什么以及如何解决?

顺便说一下 - 如果你有时间回答更多 - 使用原型是否存在危险/缺点?

1 个答案:

答案 0 :(得分:6)

好吧,当您使用JComboBox<String[][]>进行参数设置时,方法addItem()需要String[][]作为参数:

public void addItem(String[][] item) { // method signature when <String[][]>

在您的示例中,您尝试传递正常String,这显然是不允许的,因为它不是String[][]

要解决此问题,只需使用String对其进行参数化:

private JComboBox<String> myComboBox = new JComboBox<>();

有关rawtypes的更多信息,请参阅该问题的惊人详细解答:
What is a raw type and why shouldn't we use it?