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