多態、數組中能否使用泛型
import java.util.List;
/**
* 1.泛型沒有多態
* 2.泛型沒有數組
* 底層原因?
* @author Administrator
*
*/
public class GenericPolymorphism {
public static void main(String[] args) {
//父類引用指向子類對象--->多態
//編譯爲父類,使用爲子類
List list = new ArrayList();
//泛型不能用於多態
//List<List> list1 = new ArrayList<LinkedList>();
//使用通配符 及extends解決
List<? extends List> list2 = new ArrayList<LinkedList>();
ArrayList list3 = new ArrayList(10);
//泛型不能用於數組
// ArrayList<E> list4 = new ArrayList<E>(10);
//jdk1.7對泛型的簡化,僅需要在聲明時規定類型
List< List> list5 = new ArrayList<>();
}
}
泛型的擦除
/**
* 泛型的擦除
*在使用泛型的時候沒有定義具體的類型當做Object使用(類似,但不等同於,編譯時不會進行類型檢查),會彈出警告Waring
*
* @author Administrator
*
*/
public class MyStuApp {
public static void main(String[] args) {
//泛型的擦除,即不指定類型,當做普通類、方法使用
GenericClass stu = new GenericClass();
GenericClass<Integer> stu1 = new GenericClass<Integer>();
stu1.setObj(1111);
GenericClass<String> stu2 = new GenericClass<String>();
stu2.setObj("aaa");
Integer num = stu1.getObj();
String str = stu2.getObj();
System.out.println(num + "," + str);
}
}