带通配符的通用数组导致错误

时间:2014-10-18 06:05:11

标签: java arrays generics

我想用Type String创建JComboBox,但是将它放在一个数组中,所以我使用通配符表示数组,使用String表示单个元素:

JComboBox<?>[] combos=new JComboBox<?>[10];
...
combos[i]=new JComboBox<String>();

与DefaultComboBoxModels相同:

DefaultComboBoxModel<?>[] comboModels=new DefaultComboBoxModel<?>[10];
...
comboModels[i]=new DefaultComboBoxModel<String>();

将它们分配给对方:

...
combos[i].setModel(comboModels[i]);

现在给编译器错误(捕获#13-of?不适用于捕获#14-of?)。我希望单个元素设置为String,一切都很好。怎么说,怎么处理呢? (除了做它之外)

1 个答案:

答案 0 :(得分:0)

Java需要确保,该模型和组合具有相同的类型。在给定的示例中,一旦类型在擦除后消失,则无法执行此操作。您也可以这样设置model<Integer>combo<String>

相关问题