import java.util.ArrayList;
import java.util.Collection;
/*
*泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。
-
注意:泛型不存在任何继承关系。
-
通配符的高级使用----受限泛型。
-
泛型的上限:
-
格式:类型名称 <? extends 类 > 对象名称。
-
意义:只能接收该类型及其子类。
-
泛型的下限:
-
格式:类型名称 <? super 类 > 对象名称
-
意义:只能接收该类型及其父类型
-
**/
public class Demo_泛型的通配符 {public static void main(String[] args) {
Collection<Integer> list1=new ArrayList<>(); getElement(list1); getElement1(list1); //getElement2(list1);//报错; Collection<String> list2=new ArrayList<>(); getElement(list2); //getElement1(list2);//报错; // getElement2(list2);//报错; Collection<Object> list3=new ArrayList<>(); //getElement1(list3);//报错; getElement2(list3); Collection<Number> list4=new ArrayList<>(); getElement1(list4); getElement2(list4);
}
public static void getElement(Collection<?> coll){}
public static void getElement1(Collection<? extends Number> coll){}
public static void getElement2(Collection<? super Number> coll){}
}