教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

Java中怎樣自定義泛型和泛型接口?

更新時(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)

定義類(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)型的操作。

0 分享到:
和我們?cè)诰€交談!