【发布时间】:2019-05-14 08:21:18
【问题描述】:
我正在使用以下代码创建一个 ArrayLists 数组:
ArrayList<Integer>[] list = new ArrayList[n];
据说泛型数组是不允许的。我的代码是怎么编译的?
【问题讨论】:
-
我的问题是,即使人们说 Java 中不允许使用泛型数组,为什么要为我编译这段代码:
ArrayList<Integer>[] list = new ArrayList[n]; -
因为在这种情况下您没有使用完整的泛型;
new ArrayList[n]使用的是ArrayList的原始类型。编译器应该发出警告,指出代码不安全/未经检查。这类似于将原始类型转换为泛型类型 - 允许但不安全。