我在以下代码中收到unchecked
的警告:
JComboBox<String> boxes[] = new JComboBox[3];
如何摆脱它?
答案 0 :(得分:4)
在 Oracle Java教程 - 泛型限制中阅读
Cannot Create Arrays of Parameterized Types
直接从上面的教程中详细解释:
您无法创建参数化类型的数组。例如,以下代码无法编译:
List<Integer>[] arrayOfLists = new List<Integer>[2]; // compile-time error
以下代码说明了将不同类型插入数组时会发生什么:
Object[] strings = new String[2];
strings[0] = "hi"; // OK
strings[1] = 100; // An ArrayStoreException is thrown.
如果您使用通用列表尝试相同的操作,则会出现问题:
Object[] stringLists = new List<String>[]; // compiler error, but pretend it's allowed
stringLists[0] = new ArrayList<String>(); // OK
stringLists[1] = new ArrayList<Integer>(); // An ArrayStoreException should be thrown,
// but the runtime can't detect it.
如果允许参数化列表数组,则前面的代码将无法抛出所需的ArrayStoreException
。