泛型与集成的关系
List<Object> list = null;
List<String> list1 = new ArrayList<String>();
list = list1; 错误的
//假设list = list1 满足 list 引用 指向了 list1 的地址
//那么 list.add(123); 就可以添加,编译可以通过
//但是 list.get(0); //获取到时变成了Integer 而不是String 就错误了。显然不正确,所以List<String> 不是 List<Object> 的子接口
通配符 ?
List<?> list = null;
List<String> list1 = new ArrayList<String>();
List<Object> list2 = new ArrayList<Object>();
list = list1;
list = list2;
List<?> 是 List<A> List<B> .... 等的父类
? extends A 可以存放A 及其子类 ?类型 <= A
? super A 可以存放A及其父类 ?类型 >= A