use*_*478 0 java generics swing jcombobox
如果我实例化Swing的JCombobox类并将String [] [] - 项添加到它 - 除了我收到以下警告之外没有问题:
JComboBox是原始类型.应该对泛型类型JComboBox的引用进行参数化.
好吧 - 我以下面的方式参数化对象
private JComboBox <String[][]> myComboBox = new JComboBox <String[][]> ();
Run Code Online (Sandbox Code Playgroud)
它起初看起来很好,因为警告消失了,但是当我想要从String [] [] - 对象添加项时我收到错误
myComboBox.addItem(this.stringList[i][1]);
Run Code Online (Sandbox Code Playgroud)
错误信息:
*the method addItem(String[][]) in the type JComboBox <String[][]> is not applicable for the arguments (String).*
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如何解决?
顺便说一句 - 如果你有时间回答更多 - 使用rawtypes有危险/缺点吗?
好吧,当你使用参数化JComboBox时<String[][]>,该方法addItem()需要String[][]一个参数:
public void addItem(String[][] item) { // method signature when <String[][]>
Run Code Online (Sandbox Code Playgroud)
在你的例子中,你试图传递一个法线String,这显然是不允许的,因为它不是一个String[][].
要解决此问题,只需使用以下参数进行参数化String:
private JComboBox<String> myComboBox = new JComboBox<>();
Run Code Online (Sandbox Code Playgroud)
有关rawtypes的更多信息,请参阅该问题的惊人详细解答:
什么是原始类型,为什么我们不应该使用它?
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |