如果B是A的一个子类型(子类或者子接口),而G是具有泛型声明的类或接口,G<B>并不是G<A>的子类型!
比如: String是Object的子 类,但是List<String >并不是List<Object>的子类。
public class GenericTest {
@Test
public void test1(){
Object obj = null;
String str = null;
obj = str;
Object[] arr1 = null;
String[] arr2 = null;
arr1 = arr2;
Date date = new Date();
str = date;
List<Object> list1 = null;
List<String> list2 = new ArrayList<String>();
list1 = list2;
show(list1);
show1(list2);
}
public void show1(List<String> list){
}
public void show(List<Object> list){
}
@Test
public void test2(){
List<String> list2 = null;
ArrayList<String> list3 = null;
list2 = list3;
}