泛型與萬用字元的使用

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

一、泛型

可以用、、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定義成乙個確定的泛型資料型別,引數就只能是這種資料型別。此時,就用到了萬用字元代替確定的泛型資料型別。

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

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

泛型的使用與萬用字元

把元素的型別設計成乙個引數,這個引數型別叫做泛型。arraylistlist new arraylist 舉例 public class generictest system.out.println 方式二 iterator iterator list.iterator while iterator...

泛型萬用字元 與 有限制的泛型萬用字元

一 泛型萬用字元 子父類關係 list list1 newarraylist list list2 newarraylist list1 list2 編譯錯誤 list list null list list1 list list2 結論 讀寫問題 collection c newarraylist...

泛型(萬用字元)

1 宣告好泛型型別之後,集合中只能存放特定型別元素 2 泛型型別必須是引用型別 3 使用泛型後取出元素不需要型別轉換.泛型函式 當函式中使用了乙個不明確的資料型別,那麼在函式上就可以進行泛型的定義。public 泛型的宣告 返回值型別 函式名 泛型 變數名 泛型類 修飾符 class 類名 泛型 泛...