定义
顾名思义就是可以匹配任何一种类型的类型实参,如List<?>,可以访问任何类型的实参,但不能做修改与增添。
带限通配符
上限通配符
仅确定上限,即父类,实例化时的指定实参是其本身或者是其子类。
它表示集合中的所有元素都是Shape类型或者其子类
List<? extends Shape>
//Circle是其子类
List<? extends Shape> list = new ArrayList<Circle>();
虽然不能具体确定,但可以知道是谁的子类或者是本身。
下限通配符
与上限通配符相反,只能确认下限,即其本身或者是其父类。
它表示集合中的所有元素都是Circle类型或者其父类
List <? super Circle>
//Shape是其父类
List<? super Circle> list = new ArrayList<Shape>();