概念
Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。
泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。
泛型方法
簡單使用
有界類型參數
即有界的類型參數,用于限制傳遞到類型參數的類型范圍。(比如,希望傳的泛型是數字類型)
用法:<類型參數 extends 上界> (eg:<T extends Number>)
( 注:這里的extends不僅限于繼承父類的子類,也可以代指實現了接口的類)
多邊界:<T extends A & B & C>?
(注:其實只能繼承一個父類,且必須寫在第一個,其他實現的均為接口,即Class A,interface B,interface C)
泛型類
概念:具有一個或多個泛型變量的類被稱之為泛型類。
泛型類
通配符類型
概念:對類型進行限定。通配符不是類型變量,因此不能在代碼中使用"?"作為一種類型。
子類型限定
<? extends X>表示該通配符所代表的類型是T類型的子類。
超類型限定
<? super X>表示該通配符所代表的類型是T類型的父類。
特點:1、限定為X和X的超類型,直至Object類,因為不知道具體是哪個超類型,因此方法返回的類型只能賦給Object。
? ? ? ? ? ?2、因為X的子類型可以向上轉型為X,所以作為方法的參數時,可以傳遞null,X以及X的子類型。
無限定
無限定不等于可以傳任何值,相反,作為方法的參數時,只能傳遞null,作為方法的返回時,只能賦給Object。
作用:對于一些簡單的操作比如不需要實際類型的方法,就顯得比泛型方法簡潔。