泛型與萬用字元的使用

2022-06-23 19:33:08 字數 1062 閱讀 6914

一、泛型

可以用、、extends user>等進行泛型的宣告。其中extends user>的宣告方式限定了t的範圍,t只能為 user的子類。

1.引數型別用在類的建立中,泛型類。

2.引數型別用在介面的建立中,泛型介面。

3.引數型別用在方法的建立中,泛型方法。注意泛型的宣告位置,在方法的修飾符之後,返回值型別之前。

二、? 型別萬用字元

萬用字元的幾種形式:

1.無限定萬用字元,<?>。

2.上限萬用字元,<? extends user>。表示引數型別只能是user的子類。

3.下限萬用字元,<? super user>。表示引數型別只能是user的父類。

public class p

//萬用字元

//設定指定型別的範圍,超過範圍就會報錯

//extends : 指定範圍必須是其(這裡是list)子類

public void set(p<? extends list> list)

//super : 指定型別必須是其(這裡是list)父類

public void setsuper(p<? super list> list)

public static void main(string args)

}class user

//一個類可以同時指定多個泛型

class person

}泛型的宣告表明,在類、介面、方法的建立中,要使用一個未知的資料型別。它可以是integer型別,也可以是string型別。就把它的型別定義成 t 、s 或者是n等等。

在例項化的時候,就必須宣告t具體是一個什麼型別。

在定義泛型物件的使用方法時,還不知道t是什麼型別,它可能是string型別,也可能是integer型別。如果,把t定義成一個確定的泛型資料型別,引數就只能是這種資料型別。此時,就用到了萬用字元代替確定的泛型資料型別。

使用泛型、萬用字元提高了**的複用性。

把一個物件分為宣告、使用兩部分的話。泛型側重於型別的宣告上**複用,萬用字元則側重於使用上的**複用。泛型用於定義內部資料型別的不確定性,萬用字元則用於定義使用的物件型別不確定性。

自定義類使用泛型and方法使用泛型

使用泛型的自定義類,泛型可以使用任意的資料型別,在建立物件的時候確定是什麼資料型別,建立物件的時候不使用泛型,那就預設是object型別 格...

C 中泛型的使用

名稱空間 using system collections generic 普通陣列 在宣告時必須制定陣列的長度和資料型別 arraylis...

Freepascal 中的泛型使用

pascal 中也可以支援泛型 generics 。 如何定義在machinel 中有清晰的使用說明 看看delphi月freepascal fpc 關於使用還是有區別的。 fpc 預定義的單元是 fgl delphi定義的單元是 generics collections fpc 中 使用泛型必須定...