java中關於引數化型別

2021-08-14 03:44:18 字數 487 閱讀 2216

list list = new arraylist();

這是未引入引數化型別時的寫法,list集合中可以儲存不同型別的元素,如此便有了安全隱患,編譯器不能保證你取值時的轉型(拆箱)一定正確。

jdk1.5引入了引數化型別(泛型)之後,寫法變為。

list《型別(例如string)> list = new arraylist();

這樣的話,list中只能儲存string型別的元素,編譯器在編譯時便會驗證list中的元素是否全為string型別,否則編譯錯誤。如此一來便不存在安全隱患,讀取資料時也不需要自己進行拆箱,編譯器會判斷其元素型別為string.

引數化型別就是乙個編譯器可以自動定製作用於特定型別上的類,簡單的說就是,原本集合中用來處理的通用型別為object,而使用了引數化型別後,編譯器會自動的將object引數的型別修改為你傳遞給它的引數化型別,例如此例執行時記憶體中list類中的object屬性,全被替換為string的。

泛型 引數化型別

定義 定義1 把型別引數化 定義2 例如 public class generic 此時的t便是泛型,理解 泛型是個資料型別,可以用t定義變數 引數化 目的 作用位置 類,介面,方法 特點 泛型類 不能對確切的泛型型別使用instanceof操作 泛型類不會自動封裝,不會自動轉化資料型別 測試 pu...

Java 泛型引數型別理解

泛型 generics extends super 1 泛型引數型別限制 1 泛型的引數型別只能是類 class 型別,而不能是簡單型別。2 可以宣告多個泛型引數型別,比如 同時還可以巢狀泛型,例如 3 泛型 的引數類 型可以使用 extends 語句,例如 4 泛型的引數型別可以使用 super ...

Java 泛型引數型別理解

1 泛型引數型別限制 1 泛型的引數型別只能是類 class 型別,而不能是簡單型別。2 可以宣告多個泛型引數型別,比如 同時還可以巢狀泛型,例如 3 泛型的引數 型別可以使用 extends 語句,例如。4 泛型的引數型別可以使用 super 語句,例如 t super childclass 5 ...