更新時間:2023年10月24日11時55分 來源:傳智教育 瀏覽次數(shù):
泛型是JDK5中引入的特性,可以在編譯階段約束操作的數(shù)據(jù)類型,并進(jìn)行檢查。泛型能統(tǒng)一數(shù)據(jù)類型。把運行時期的問題提前到了編譯期間,避免了強制類型轉(zhuǎn)換可能出現(xiàn)的異常,在編譯階段類型就能確定下來數(shù)據(jù)類型。
那Java中怎樣自定義泛型?定義泛型可以選在泛型類、泛型方法、和泛型接口這些地方,本節(jié)來對定義泛型的方法進(jìn)行介紹,包含定義原理和定義方法。
定義類時同時定義了泛型的類就是泛型類。泛型類的格式:修飾符 class 類名<泛型變量>{ }
范例:public class MyArrayList<T> { }
泛型類的原理是把出現(xiàn)泛型變量的地方全部替換成傳輸?shù)恼鎸崝?shù)據(jù)類型。其中的泛型變量T可以隨便寫為任意標(biāo)識,常見的如E、T、K、V等。在編譯階段可以指定數(shù)據(jù)類型,類似于集合的作用。
定義方法時同時定義了泛型的方法就是泛型方法。泛型方法的格式:修飾符 <泛型變量> 方法返回值 方法名稱(形參列表){}
范例: public <T> void show(T t) { }
泛型方法是把出現(xiàn)泛型變量的地方全部替換成傳輸?shù)恼鎸崝?shù)據(jù)類型。泛型方法中可以使用泛型接收一切實際類型的參數(shù),更具備通用性。
使用了泛型定義的接口就是泛型接口。泛型接口的格式:修飾符 interface 接口名稱<泛型變量>{}
范例: public interface Data<E>{}
泛型接口可以讓實現(xiàn)類選擇當(dāng)前功能需要操作的數(shù)據(jù)類型,實現(xiàn)類可以在實現(xiàn)接口的時候傳入自己操作的數(shù)據(jù)類型,這樣重寫的方法都將是針對于該類型的操作。