Java泛型---其他

多態、數組中能否使用泛型

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);
	}
}

發佈了38 篇原創文章 · 獲贊 6 · 訪問量 9098
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章