一、什么是泛型
泛型本质是参数化类型,把要操作的数据类型指定为一个参数,并且在编译时期提供类型检查机制,检测不合法的数据类型。
二、上界通配符
在接收参数时,要对参数进行限制
public class Fruits{
}
public class Apple extends Fruits{
}
public class RedApple extends Apple{
}
public class Client{
public static void main(String[] args) {
deal(new ArrayList<Fruits>().add(new Fruits()));
deal(new ArrayList<Apple>().add(new Apple()));
deal(new ArrayList<RedApple>().add(new RedApple()));
}
public static void deal(List<? extends Apple> fruitsList){
Apple apple = fruitsList.get(0);
fruitsList.add(new Apple());
fruitsList.add(new RedApple());
}
}
三、下界通配符
public class Client{
public static void main(String[] args) {
deal(new ArrayList<Fruits>().add(new Fruits()));
deal(new ArrayList<Apple>().add(new Apple()));
deal(new ArrayList<RedApple>().add(new RedApple()));
}
public static void deal(List<? super Apple> fruitsList){
fruitsList.add(new Apple());
fruitsList.add(new RedApple());
fruitsList.add(new Fruits());
}
}