Java,组合框警告未经检查?

时间:2014-06-15 17:33:54

标签: java

我在以下代码中收到unchecked的警告:

JComboBox<String> boxes[] = new JComboBox[3];

如何摆脱它?

1 个答案:

答案 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