【问题标题】:Understanding array of ArrayLists [duplicate]了解ArrayLists数组[重复]
【发布时间】:2019-05-14 08:21:18
【问题描述】:

我正在使用以下代码创建一个 ArrayLists 数组:

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

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

【问题讨论】:

  • 我的问题是,即使人们说 Java 中不允许使用泛型数组,为什么要为我编译这段代码:ArrayList&lt;Integer&gt;[] list = new ArrayList[n];
  • 因为在这种情况下您没有使用完整的泛型; new ArrayList[n] 使用的是ArrayList原始类型。编译器应该发出警告,指出代码不安全/未经检查。这类似于将原始类型转换为泛型类型 - 允许但不安全。

标签: java arrays arraylist


【解决方案1】:

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

ElementType [] name = new ElementType[size];

这里你的元素类型是 ArrayList

看这个网站:Array of ArrayList

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-03
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多