第一章:泛型中? super T的核心概念解析
在Java泛型编程中,`? super T` 是一种通配符表示形式,称为“下界通配符”。它用于限定泛型参数的类型范围,表示可以接受类型 `T` 或其任意父类。这种机制特别适用于需要向集合中写入数据的场景,确保类型安全的同时提升代码的灵活性。
核心用途与语义
`? super T` 强调“生产者”角色中的输入约束,即允许将 `T` 类型或其子类型的对象存入容器,但读取时只能以 `Object` 类型处理。这一特性遵循“PECS”原则(Producer Extends, Consumer Super)中的“Consumer Super”。
典型应用场景
最常见的使用场景是 `java.util.Collections` 中的 `addAll` 方法:
public static <T> boolean addAll(Collection<? super T> c, T... elements) {
boolean result = false;
for (T element : elements) {
c.add(element); // 可安全添加T类型元素
result = true;
}
return result;
}
上述代码中,`Collection` 允许传入 `List