Java 理解数组列表的数组

Java 理解数组列表的数组,java,arrays,arraylist,Java,Arrays,Arraylist,我正在使用以下代码创建ArrayList数组: ArrayList<Integer>[] list = new ArrayList[n]; ArrayList[]list=新的ArrayList[n]; 据说泛型数组是不允许的。我的代码是如何编译的?因为您正在初始化数组,而不是ArrayList 看看这个: ElementType [] name = new ElementType[size]; 这里的元素类型是ArrayList 查看此站点:参考java文档。不能创建参数化类

我正在使用以下代码创建ArrayList数组:

ArrayList<Integer>[] list = new ArrayList[n];
ArrayList[]list=新的ArrayList[n];

据说泛型数组是不允许的。我的代码是如何编译的?

因为您正在初始化数组,而不是ArrayList 看看这个:

ElementType [] name = new ElementType[size];
这里的元素类型是ArrayList


查看此站点:

参考java文档。不能创建参数化类型的数组。如果允许,您可以创建通用列表,其中包含不同类型的每个元素。这是不允许的。文档很好地解释了这一点

我的问题是,尽管人们说java中不允许使用泛型数组,但为什么要为我编译这段代码:
ArrayList[]list=new ArrayList[n]因为在这种情况下没有使用完整的泛型
newarraylist[n]
正在使用原始类型的
ArrayList
。编译器应该发出警告,说明代码不安全/未检查。这类似于将原始类型转换为泛型类型,这是允许的,但不安全。