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<>(); ArrayListcats = 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); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)