- 1.1 引言
- 1.2 動機和優點
- 1.3 定義泛型類和接口
- 1.4 泛型方法
- 1.5 【示例】對一個對象數組進行排序
- 1.6 原始泛型和向后兼容
- 1.7 通配泛型
- 1.8 消除泛型和對泛型的限制
- 1.9 【示例】泛型矩陣類
1.1 引言
泛型可以使我們在編譯時就檢測出錯誤,而不必等到運行才檢出錯誤。如果視圖使用一個不相容的對象,編譯器會檢測出這個錯誤。
1.2 動機和優點
從1.5開始允許定義泛型類,泛型接口,泛型方法,并且在API中修改了java.lang.Comparable接口。
<T>表示泛型類型,隨后用一個實際具體類型來替換它,替換的類型稱為泛型實例化。
泛型類型是引用類型,不能用基本類型來實例化,使用包裝類來替換。
優點:
- 存的時候,編譯器會提示類型不匹配
- 取得時候,無需類型轉換,直接輸入index可以查找
// 這里不會出錯!
ArrayList date = new ArrayList<>();
date.add(new Date());
date.add(new String(" string"));
System.out.println((String)date.get(1) + date);// 這里如果沒使用泛型,在輸出的時候需要強制類型轉換
// 這里編譯會出錯!
ArrayList<Date> dateArray = new ArrayList<>();
dateArray.add(new Date());
dateArray.add("string");// 錯誤的地方
1.3 定義泛型類和接口
使用類來創建對象,或者使用類或接口來聲明引用變量時,需要指明具體的類型
1.4 泛型方法
1.5 【示例】對一個對象數組進行排序
1.6 原始泛型和向后兼容
1.7 通配泛型
1.8 消除泛型和對泛型的限制
1.9 【示例】泛型矩陣類
【引用】
Java語言程序設計(進階篇) ---- 機械工業出版社