版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LiyangBai/article/details/88069134
1、泛型高级(通配符):
①、泛型通配符<?>
任意类型,如果没有明确,那么就是Object以及任意的Java类
②、? extends E
向下限定,E及其子类
③、? super E
向上限定,E及其父类
/**
* 泛型:高级通配符
* @author Administrator
*
*/
public class demo9 {
public static void main(String[] args) {
//泛型没有明确的时候,左右必须一致
ArrayList<Object> c1 = new ArrayList<Object>();
//泛型不明确的时候,?表示任意的泛型都是可以的
ArrayList<?> c2 = new ArrayList<Animal>();
ArrayList<?> c3 = new ArrayList<Object>();
ArrayList<?> c4 = new ArrayList<Animal>();
ArrayList<?> c5 = new ArrayList<Dog>();
ArrayList<?> c6 = new ArrayList<Cat>();
//? extends E:向下限定,E及其子类
ArrayList<? extends Animal> c7 = new ArrayList<Animal>();
ArrayList<? extends Animal> c8 = new ArrayList<Dog>();
ArrayList<? extends Animal> c9 = new ArrayList<Cat>();
//? super E:向上限定,E及其父类
ArrayList<? super Animal> c10 = new ArrayList<Animal>();
ArrayList<? super Animal> c11 = new ArrayList<Object>();
}
}