JAVA泛型边界混淆
我试图遵循oracle文档中关于集合中泛型、上界和下界的说明,但这会造成混乱。。作为JAVA泛型边界混淆,java,generics,collections,Java,Generics,Collections,我试图遵循oracle文档中关于集合中泛型、上界和下界的说明,但这会造成混乱。。作为 import java.util.ArrayList; import java.util.List; public class Test2 { public static void main(String[] args) { List<Dog> dogList = new ArrayList<>(); dogList.add(new Dog()
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<Dog> dogList = new ArrayList<>();
dogList.add(new Dog());
dogList.add(new Dog());
List<Cat> catList = new ArrayList<>();
catList.add(new Cat());
catList.add(new Cat());
List<Entity> entList = new ArrayList<>();
entList.add(new Entity());
entList.add(new Entity());
print(dogList);
print(catList);
print1(entList);
}
public static void print(List<? extends Animal> animals){
for(Animal an : animals){
System.out.println(an);
}
}
public static void print1(List<? super Animal> animals){
animals.add(new Animal());
animals.add(new Dog());
for(Object an : animals){
System.out.println(an);
}
}
}
class Entity {}
class Animal extends Entity{}
class Dog extends Animal {}
class Cat extends Animal {}
import java.util.ArrayList;
导入java.util.List;
公共类Test2{
公共静态void main(字符串[]args){
List dogList=new ArrayList();
添加(新狗());
添加(新狗());
List catList=new ArrayList();
catList.add(新的Cat());
catList.add(新的Cat());
List entList=new ArrayList();
添加(新实体());
添加(新实体());
打印(狗名单);
打印(catList);
print1(entList);
}
publicstaticvoidprint(ListList是通配符,是通用的,但是为什么ListList
List<Object> objList = new ArrayList<>();
objList.add(new Dog());
objList.add(new Animal());
objList.add(new Entity());
objList.add(new Object());
print1(objList);