Java,是否取消选中组合框警告?
我在下面的代码中得到了一个警告:Java,是否取消选中组合框警告?,java,Java,我在下面的代码中得到了一个警告: JComboBox<String> boxes[] = new JComboBox[3]; 如何摆脱它?阅读Oracle Java教程-泛型限制中的相关内容 直接从上面的教程中详细解释: 不能创建参数化类型的数组。例如,以下代码不编译: List<Integer>[] arrayOfLists = new List<Integer>[2]; // compile-time error 如果对通用列表尝试相同的操作,则会出
JComboBox<String> boxes[] = new JComboBox[3];
如何摆脱它?阅读Oracle Java教程-泛型限制中的相关内容
直接从上面的教程中详细解释:
不能创建参数化类型的数组。例如,以下代码不编译:
List<Integer>[] arrayOfLists = new List<Integer>[2]; // compile-time error
如果对通用列表尝试相同的操作,则会出现问题:
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。。更多详细信息:ArrayStoreException在运行时抛出。由于类型擦除,java运行时对泛型一无所知,因此无法区分ArrayList和ArrayList。他们两个看起来都像普通的老阿雷利斯特。
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.