//<?>表示任意的泛型类型都可以接收 public static void print1(List<?> c){} // <? extends AA> 表示上限,可以接收AA或者AA的子类 public static void print2(List<? extends AA> c){} // <? super AA>:支持AA类以及AA类的父类,不限于直接父类。规定了泛型的下限 public static void print3(List<? super AA> c){}
package com.generic;
import java.util.ArrayList;
import java.util.List;
public class GenericExtends {
public static void main(String[] args) {
ArrayList<Object> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();
ArrayList<AA> list3 = new ArrayList<>();
ArrayList<BB> list4 = new ArrayList<>();
ArrayList<CC> list5 = new ArrayList<>();
//测试 public static void print1(List<?> c){}
print1(list1);
print1(list2);
print1(list3);
print1(list4);
print1(list5);
//测试 public static void print2(List<? extends AA> c){}
print2(list1);//F
print2(list2);//F
print2(list3);
print2(list4);
print2(list5);
//测试 public static void print3(List<? super AA> c){}
print3(list1);
print3(list2);//F
print3(list3);
print3(list4);//F
print3(list5);//F
}
//List<?>表示任意的泛型类型都可以接收
public static void print1(List<?> c){}
// ? extends AA 表示上限,可以接收AA或者AA的子类
public static void print2(List<? extends AA> c){}
// ? super AA:支持AA类以及AA类的父类,不限于直接父类。规定了泛型的下限
public static void print3(List<? super AA> c){}
}
class AA{}
class BB extends AA{}
class CC extends BB{}