如果我实例化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).*
我做错了什么以及如何解决?
顺便说一下 - 如果你有时间回答更多 - 使用原型是否存在危险/缺点?
答案 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?