小编wza*_*ski的帖子

名单<?super B> lsb = new ArrayList <A>(); java中的逻辑错误?

我们有:

class A{}
class B extends A{}
class C extends B{}
class D extends C{}
Run Code Online (Sandbox Code Playgroud)

我们可以定义列表,如:

List<? super B> lsb1 = new ArrayList<Object>();
//List<? super B> lsb2 = new ArrayList<Integer>();//Integer, we expect this    
List<? super B> lsb3 = new ArrayList<A>();
List<? super B> lsb4 = new ArrayList<B>();
//List<? super B> lsb5 = new ArrayList<C>();//not compile
//List<? super B> lsb6 = new ArrayList<D>();//not compile
Run Code Online (Sandbox Code Playgroud)

现在我们创建一些对象:

Object o = new Object();
Integer i = new Integer(3);
A a = new A();
B …
Run Code Online (Sandbox Code Playgroud)

java generics list wildcard arraylist

3
推荐指数
1
解决办法
1444
查看次数

标签 统计

arraylist ×1

generics ×1

java ×1

list ×1

wildcard ×1