假设C类扩展B,B扩展A.
对于给定的功能:
public static void add(List<? extends B> list) {
list.add(new A()); //Doesn't compile
list.add(new B()); //Doesn't compile
list.add(new C()); //Doesn't compile
}
为什么添加任何元素都无法实现?我明白了
List<? extends B> list
作为B或C类型的元素列表。
对于超级界限:
public static void add2(List<? super B> list) {
list.add(new A()); //doesn't compile
list.add(new B());
list.add(new C());
}
我理解
List<? super B> list
作为包含A或B类型元素的列表。
我不明白它是如何运作的:/