java - 实例化泛型 : new ArrayList<? >() 与 new ArrayList<List<?>>()

标签 java generics

<分区>

为什么允许这样做:

List<List<?>> list = new ArrayList<List<?>>()

但不是这个?

List<?> list = new ArrayList<?>(); //Compile error: "Cannot instantiate the type ArrayList<?>"

最佳答案

创建 ArrayList 时,需要定义它将包含的对象类型:

  • 在第一个示例中,您创建了一个 ArrayList,它将包含未知泛型类型的列表,但它们都是列表。
  • 在第二个示例中,您尝试创建未知类型的 ArrayList,这是不允许的。

关于java - 实例化泛型 : new ArrayList<? >() 与 new ArrayList<List<?>>(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197396/

相关文章:

java - 迭代 Map Inside List 以便在 JSP 中将值显示为行

java - 将 Collection 和 Iterator 接口(interface)实现为内部类

c# - 具有继承设计的泛型 - 需要帮助来修复

c# - C#泛型类型约束-防止类型参数相同?

java - 在 Java 中转换 HTML 字符编码

java - 不能使用括号的数学表达式

java - 将数组列表转换为 json 对象字符串

java - Android:抑制方法调用时的警告

java - 查找通用数组方法中最大元素,整数,字符串,字符

swift - 链式通用类型在 swift 中推断闭包