通配符 ? 类型不确定
只能用于申明变量或形参,不能用于定义泛型类
List> list =new ArrayList();
list =new ArrayList();
list =new ArrayList
限制泛型可用类型
extends 上限 指定的类型必须是继承某个类,或者实现某个接口 子类或自身
super 下限 指定的类型必须是父类或自身
public class Fruit {}
public class Apple extends Fruit{}
public class Pear extends Fruit{}
public class BigApple extends Apple{}
// 匹配 Furit 及其 子类
public static void test3(List extends Fruit> list){}
// 匹配 Apple 及 其父类
public static void test4(List super Apple> list){}
test3(new ArrayList());
test3(new ArrayList());
test4(new ArrayList());
test4(new ArrayList());
// 只能匹配 Apple 及其父类
// test4(new ArrayList());