java中的泛型

2021-07-11 15:37:38 字數 1144 閱讀 1199

如果乙個類裡只接受整數型別,那麼無法加入浮點型別;如果用object類物件取代整數型別,那麼編譯器就要正常判斷當前物件實際是哪一種型別,這會很浪費時間。如果用某個未指定的型別t取代整數型別,實際使用時再加入具體型別,那麼就可以處理多種型別的物件。例如:

public class store

public t get()

}

在store類中,加入了乙個引數化型別t,意味著成員變數t的型別未定,因此該程式通用性好。當使用這個類時,用具體的型別取代t就行了,可以用類型別,介面型別和其他引用型別取代t,但不能用基本型別取代。例如,store意味著t的型別現在是car,例項化store類的語法是「store c1 = new ();」

泛型的應用例項:

class store

public t get()

} public class teststore

} 結果:

3 abc

從本例可以看出,store類用了泛型引數t後,可以用於儲存整數型類物件和字串型物件,提高了復用度。

一、定義泛型型別:

定義泛型型別時用尖括號包含乙個單個大寫字母代表的型別引數跟在類名後,常用的大寫字母及其含義如下:

泛型型別可以有多個型別引數,但每乙個引數在該類或介面中是唯一的,如store表明store裡有兩個型別引數。介面也可以使用泛型,例如:

public inte***ce room

方法本身也可以定義泛型型別,稱為泛型方法,比宣告整個類為泛型更實用。定義泛型方法時,把尖括號部分放在方法的返回值前,例如:

publicvoid put(t t)

同理,構造方法也可以定義泛型型別。

二、限界型別引數:

限界型別引數是限定可以取代型別引數的實際型別範圍。上節中store沒有限定用什麼型別代替t,如果希望只能用水果型別fruit及其子類取代t,可以用extends fruit載入t後,例如: public class store。其中,extends後面的型別是t的上界。限定了可替換的型別範圍後,用該範圍之外的型別帶入就會出現編譯錯誤。

三、萬用字元:

泛型中所用的萬用字元用問號?表示,代表某種未知型別,有無界萬用字元、限界萬用字元和下界萬用字元。

無界萬用字元的形式:

JAVA中的泛型

1 泛型的基本作用 有時候建立乙個類,需要這個類中的屬性是object型別的,可以時而為string型別,時而為long型別等。比如乙個座標類point,橫座標和縱座標可能是整型,可能是浮點型,也可能是字串型別,需要輸出的結果如下 如下 package org.mole.t public class...

Java中的泛型

我們在定義的時候 就會確定資料型別 而泛型 就是是資料型別引數化 集合框架中沒有使用泛型和使用泛型的比較 沒有使用泛型 list li new linkedlist li.add 100 int x int li.get 0 system.out.println x 使用泛型 listli new ...

java中的泛型

之前對泛型的理解一直停留在listj集合中的元素限定的那塊,後來慢慢的接觸到了介面的泛型,類以及方法的泛型。下面結合查到的資料,算是記錄一下。由於集合中的泛型限定太多簡單就不舉例了,現在來說說介面,類,和方法中的泛型。我們常見的比如 t,e,v,k等形式的引數常用於表示泛型形參,接收來自外部使用時候...