gpt4 book ai didi

java - java中参数化ArrayLists的通用数组?

转载 作者:行者123 更新时间:2023-11-30 05:59:44 24 4
gpt4 key购买 nike

我是 Java 的新手,所以我不知道其中的细节。
为什么我不能创建参数化 ArrayList 的通用数组?
相反,我必须写,

ArrayList<String>[] alist = new ArrayList[10]; 

或者我必须创建 ArrayLists 列表。
难道数组不应该比 ArrayList 更高效吗?那为什么Java不允许呢?
另外,下面两行有什么区别。

ArrayList<String>[] alist = new ArrayList[10];  
ArrayList<String>[] alist = new ArrayList<?>[10];

最佳答案

您必须这样做的原因是因为 Java 中真的不存在泛型。它实际上是一个 compiler hack .

至于您发布的两行,在生成的字节码方面应该没有任何区别。但是,在第一种情况下,您可能会收到警告,因为您的编译器认为您忘记了 java.util.ArrayList 需要类型参数,而后者不会编译,因为您正在尝试实例化一个通用数组。双输局面:(

关于java - java中参数化ArrayLists的通用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488207/

24 4 0