Java 泛型列表

标签 java generics

我知道以下内容是正确的。

List<? extends Number> aNumberSuperList = new ArrayList<>();
List<? extends Integer> aIntegerSuperList = new ArrayList<>();
aNumberSuperList = aIntegerSuperList;

但是什么类型的对象可以添加到这样的列表中。

List<? extends Number> aNumberSuperList2 = new ArrayList<>();
aNumberSuperList2.add(???)

最佳答案

null可以添加到 List<? extends Number> 。这是因为确切的类型参数未知。一个List<Integer>可以分配给这个列表,List<AtomicLong> 也可以。 。编译器必须阻止对 add 的调用除了 null 以外的任何内容,以避免出现 Integer 的情况可能会添加到称为 List<? extends Number> 的内容中,但实际上是 List<Double> , 例如。 null是在此处添加的唯一安全的内容,因为它可以是任何类型。

关于Java 泛型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001554/

相关文章:

java - 如何在不进行强制转换的情况下重写时指定方法参数?

c# - C#泛型问题

Delphi:两个字段位于同一内存位置 - 编译器错误?

java - Intellij 灯泡

java - Spring MVC 跳过 Validator 类

java - 在 Timer 中使用变量

java - java中如何通过引用传递值

c# - 当 T 正在实现类时,C++/CLI 中的 IComparable<T>

java - 在 log4j 2.9.0 中使用 JMockit 的问题

java - corda实现通用vault查询