Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java <;?超级E>;以及<;?扩展E>;名单_Java_Generics - Fatal编程技术网

Java <;?超级E>;以及<;?扩展E>;名单

Java <;?超级E>;以及<;?扩展E>;名单,java,generics,Java,Generics,具有以下简单的类结构: class A { } class B extends A { } class C extends B { } 我正在创建一个ArrayList以保留先前创建的类的对象: List<? extends A> list1 = new ArrayList<A>(); List<? extends B> list2 = new ArrayList<B>(); List<? extends C> list3 = n

具有以下简单的类结构:

class A {
}

class B extends A {
}

class C extends B {
}
我正在创建一个ArrayList以保留先前创建的类的对象:

List<? extends A> list1 = new ArrayList<A>();
List<? extends B> list2 = new ArrayList<B>();
List<? extends C> list3 = new ArrayList<C>();

List<? super A> list4 = new ArrayList<A>();
List<? super B> list5 = new ArrayList<B>();
List<? super C> list6 = new ArrayList<C>();

List类型定义
List
List“?扩展了一个”表示“从A(或A本身)派生的某种类型”。例如,一个
List
List兼容,但它不是这样工作的


你应该使用
列表我想这个问题有答案:谢谢,这是一个很好的理解方式!还有一件事对我来说很奇怪——我发现你可以做一个列表:Listuse Number,Integer是final:)
List<? extends A> list1 
List<? super A> list4
int sum(Collection<? extends Integer> collection) {
    for (Integer : collection) {
        // do sth
    }
    // ...
}
public void myAdd(List<? super B> lst) {
  lst.add(new Object()) //this is a supertype of B (compile time error)
}
...
ArrayList<A> list = new ArrayList<A>();
myAdd(list); //tries to add Object to a list of type A