1.什么是类型通配符
类型通配符一般使用?代替具体的类型实参,所以类型通配符是类型实参,而不是类型形参
2.类型通配符上限
类/接口 extends 实参类型>,要求该泛型的类型,只能是实参类型,或实参类型的子类类型
3.类型通配符的下限
类/接口 super 实参类型>,要求该泛型的类型,只能是实参类型,或实参类型的父类类型
public class Animal {
}
public class Cat extends Animal{
}
public class MiniCat extends Cat{
}
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
ArrayList animals = new ArrayList<>();
ArrayList cats = new ArrayList<>();
ArrayList miniCats = new ArrayList<>();
showAnimal(cats);
showAnimal(miniCats);
showAnimal2(animals);
showAnimal2(cats);
}
public static void showAnimal(ArrayList extends Cat> list) {
for (int i = 0; i < list.size(); i++) {
Cat cat = list.get(i);
System.out.println(cat);
}
}
public static void showAnimal2(ArrayList super Cat> list) {
for (Object o : list) {
System.out.println(o);
}
}
}



