如何使用java中的泛型

如何使用java中的泛型?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出宜昌免費(fèi)做網(wǎng)站回饋大家。

概念:泛型,即“參數(shù)化類型”。就是將原來具體的類型參數(shù)化,類似于方法中的變量參數(shù),此時類型也定義成參數(shù)形式(可以稱之為類型形參),然后在使用/調(diào)用時傳入具體的類型(類型實(shí)參)。

本質(zhì):為了參數(shù)化類型(在不創(chuàng)建新的類型的情況下,通過泛型指定的不同類型來控制形參具體限制的類型)。也就是說在泛型使用過程中,操作的數(shù)據(jù)類型被指定為一個參數(shù),這種參數(shù)類型可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。

三種使用方式:泛型類、泛型接口、泛型方法

類型通配符:

1)類型通配符一般是使用?代替具體的類型參數(shù)。例如List<?> 在邏輯上是List<String>,List<Integer>等所有List<具體類型實(shí)參>的父類。

2)類型通配符上線通過形如List來定義,如此定義就是通配符泛型值接受Number及其下層子類類型。

泛型提供了編譯時類型安全監(jiān)測機(jī)制,該機(jī)制允許程序員在編譯時檢測到非法的類型。泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。比如我們要寫一個排序方法,能夠?qū)φ麛?shù)數(shù)組、字符串?dāng)?shù)組甚至其他任何類型的數(shù)組進(jìn)行排序,我們就可以使用Java泛型。

1.泛型方法 <E>

你可以寫一個泛型方法,該方法在調(diào)用時可以接收不同類型的參數(shù)。根據(jù)傳遞給泛型方法的參數(shù)類型,編譯器適當(dāng)?shù)靥幚砻恳粋€方法調(diào)用。

// 泛型方法 printArray 
     public static < E > void printArray( E[] inputArray )
     { 
         for ( E element : inputArray ){ 
             System.out.printf( "%s ", element );
         }
     }

1)<?extend T> 表示該通配符所代表的類型是T類型的子類。

2)<? super T> 表示該通配符所代表的類型是T類型的父類。

2.泛型類 <T>

泛型類的聲明和非泛型類的聲明類似,除了在類名后面添加類型參數(shù)聲明部分。和泛型方法一樣,泛型類的類型參數(shù)聲明部分也包含一個或多個類型參數(shù),參數(shù)間用逗號隔開。一個泛型參數(shù),也被稱為一個類型變量,是用于指定一個泛型類型名稱的標(biāo)識符。因?yàn)樗鼈兘邮芤粋€或多個參數(shù),這些類被稱為參數(shù)化的類或參數(shù)化的類型。

public class Box<T> {
     private T t;
     public void add(T t) {
         this.t = t;
     }
     public T get() {
         return t;
 }

3.類型擦除

Java中的泛型基本上都是在編譯器這個層次來實(shí)現(xiàn)的。在生成的Java字節(jié)碼中是不包含泛型中的類型信息的。使用泛型時加上的類型參數(shù),會被編譯器在編譯時去掉,這個過程就稱為類型擦除。如在代碼中定義的List<Object>和List<String>等類型,在編譯之后都會變成List。JVM看到的只是List,而由泛型附加的類型信息對JVM來說時不可見的。類型擦除的基本過程也比較簡單,首次是找到用來替換類型參數(shù)的具體類,這個具體類一般是Object。如果指定了類型參數(shù)的上界的話,則使用這個上界,把代碼中的類型參數(shù)都替換成具體類。

看完上述內(nèi)容,你們對如何使用java中的泛型有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。

分享題目:如何使用java中的泛型
瀏覽路徑:http://muchs.cn/article24/pdpsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作、商城網(wǎng)站、域名注冊App開發(fā)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營