public class TestGeneric<E> {//不是泛型方法 (不能是静态方法)public static void a(E e){}//是泛型方法public static <T> void b(T t){}}
泛型参数存在继承呢个关系的情况
通配符
public class Demo {//这是main方法,程序的入口public static void main(String[] args) {List<Object> list1 = new ArrayList<>();List<String> list2 = new ArrayList<>();List<Integer> list3 = new ArrayList<>();List<?> list = null;list = list1;list = list2;list = list3;}}
A 和 B是子类父类的关系,G和G不存在子类父类关系,是并列的
加入通配符?后,G<?>就变成了 G和G的父类
public class Test {/*public void a(List<Object> list){}public void a(List<String> list){}public void a(List<Integer> list){}*/public void a(List<?> list){//内部遍历的时候用Object即可,不用?for(Object a:list){System.out.println(a);}}}class T{//这是main方法,程序的入口public static void main(String[] args) {Test t = new Test();t.a(new ArrayList<Integer>());t.a(new ArrayList<String>());t.a(new ArrayList<Object>());}}
public class Test {public void a(List<?> list){//1.遍历:for(Object a:list){System.out.println(a);}//2.数据的写入操作 ://list.add("abc");-->出错,不能随意的添加数据list.add(null);//3.数据的读取操作:Object s = list.get(0);}}class T{//这是main方法,程序的入口public static void main(String[] args) {Test t = new Test();t.a(new ArrayList<Integer>());t.a(new ArrayList<String>());t.a(new ArrayList<Object>());}}
