Java基礎 泛型 泛型介面 泛型類 泛型方法

2021-08-29 01:35:35 字數 1108 閱讀 3808

一、

二、三、泛型方法

1.

public t test(t t1, t t2)
一、泛型

1.泛型產生的背景:

原因1:集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯;

原因2:每次取值都需要強制轉換,**冗餘繁瑣;

2.泛型的定義:

泛型的本質是乙個引數化的型別(在程式編碼中一些包含引數的類),也就是說所操作的資料型別被指定為乙個引數。

引數有兩種表現:

表現1:體現在方法的乙個引數變數上,定義方法時的引數叫形參,定義方法時傳遞的引數叫實參;

表現2:體現在類或者方法或者介面上,用泛型的格式展現出來的叫引數型別;

3.泛型的好處:

好處1:泛型對加入的變數激進型安全檢查,不符合泛型實際引數的型別編譯不能通過;

4.泛型的分類:

4.1.泛型類

(1)定義:

類名中t的作用域就是整個a;

(4)public func(...) 中t的作用域就是方法func;

(5)泛型方法的型別引數可以指定上限,型別上限必須在型別引數宣告的地方定義上限,不能在方法引數中定義上限。規定了上限就只能在規定範圍內指定型別實參,超出這個範圍就會直接編譯報錯。void func(listlist)

5.泛型萬用字元

5.1萬用字元是用「?」代替具體的型別引數。

(1)例如 集合類介面list< ?> 在邏輯上是list、list 等所有list《具體型別實參》的父類;

(2)list < ? extends t> :

①表示該萬用字元所代表的型別是t型別的子類;

②list中的方法的引數涉及到萬用字元的都不能被呼叫,因為編譯器不知道集合具體裝的是t的哪個子類物件(subclass),所以不可以向集合中新增t的子類物件,包括t物件(因為新增物件要呼叫add()方法);但是可以向集合中新增t或t的基類物件;

(3)list < ? super t>:

①表示該萬用字元所代表的型別是t型別的父類;

②可以向集合中新增t或t的子類物件,而不能新增t的某種基類物件(因為新增物件要呼叫add()方法),也是編譯器不知道集合具體裝的是t的哪種基類物件(superclass);

泛型類,泛型介面,泛型方法

1.泛型介面和泛型類的使用類似,無區別。2.泛型方法使用是將泛型引數放在方法的返回值之前,例子 public void f t x 如果f t x 這個方法所在的類已經是擁有泛型引數t的泛型類,那麼可以省略前面的。因為編譯器會自動為我們找到具體的型別,稱之為型別引數推斷 type argument ...

Java泛型二 泛型類 泛型介面 泛型方法詳解

單引數泛型類 public class rectangle public t getwidth public void setwidth t width public t getheight public void setheight t height public static void main...

泛型類,泛型方法,泛型介面

泛型,就是一種不確定的資料型別。如果在類後面加上 這個類就變成了泛型類。這個 t可以使用任意的字母代替。表示定義了一種不確定的資料型別,這種不確定的資料型別必須在使用這個類 比如建立物件 的時候才能確定下來。如果希望縮小泛型的範圍,延後泛型的確定時間,讓泛型在呼叫方法的時候確定,那麼我們可以使用泛型...