/*
* 泛型与继承的关系:
* 若类A是类B的子类,那么List就不是List的子接口
*
/
/
* 通配符 <?>
* List、List都是List<?>的子类
* <? extends A : 可以存放A及其子类>
* <? super A : 可以存放A及其父类>
*/
@Test
public void test5() {
Object obj = null;
String str = "AA";
obj = str;
Object[] obj1 = null;
String[] str1 = new String[] {"AA"};
obj1 = str1;
List<Object> list1 = new ArrayList<Object>();
List<String> list2 = new ArrayList<String>();
//list1 = list2;
//若上式成立则
//list1.add(1233);
/*
* 则list2 中出现Integer型的数据,与泛型违背所以不成立
*/
}
@Test
/*
* 通配符 <?>
* List<A>、List<B>都是List<?>的子类
* <? extends A : 可以存放A及其子类>
* <? super A : 可以存放A及其父类>
*/
public void test6() {
List<?> list1 = new ArrayList();
List<Object> list2 =new ArrayList<Object>();
List<String> list3 = new ArrayList<String>();
list1 = list2;
list1 = list3;
List<? extends Number> list5 =null;
List<Integer> list4 = null;
list5 = list4;
show(list4);
show(list2);
}
public void show(List<?> list) {
}
public void show1(List<Object> list) {
}
}