這是我在總結以前所學的java基礎知識時所進行的彙總。大家看看有什麼不對的地方,請各位大神指教!!!
一、泛型示例:
class 類名稱<T>{}
interface 接口<T>{ }
public <T> void 方法 (T one){ }
注意:1.標識符T表示形式上的類型,使用時傳入實參
2. 在類體內可以根據需要將T作爲成員類型,包括返回值類型
作用:解決類型轉換異常問題、提高代碼重用性
二、泛型定義
泛型:通過參數化類型提高代碼重用性,並在編譯期強制進行類型檢查的機制。
泛型包括:泛型類、泛型接口、泛型方法
三、泛型類,泛型接口
子類繼承泛型類:
注意事項:若父類聲明瞭類型形參T,則子類的類型形參列表中也必須含有T
省略類型實參時,默認爲Object類型
四、泛型方法,泛型規則
泛型方法可用於:提高代碼重用性,靜態方法傳入泛型參數(必須使用泛型方法)
泛型規則:
1.類型實參只能是引用數據類型,不能是基本數據類型。
2.同一種泛型可以有多個版本,不同版本需考慮兼容性。
3.泛型參數可以有多個,以英文逗號割開。
4.類型實參可以使用?通配符。
5.泛型可以使用extends、super限定邊界。
五、通配符
通配符是代替一個或多個真正字符的特殊字符
外延:shell通配符、正則表達式通配符、sql通配符、泛型通配符
泛型通配符:用來表示任意類型實參的通配符
外延:無邊界通配符、固定上邊界通配符、固定下邊界通配符
?:無邊界通配符,默認匹配Object類,即可以匹配任意引用類型的對象
<? extends 上界類>:使用extends向上限定邊界,類型可以是上界類自身或其子類。
<? super 下界類>:使用super向下限定邊界, 類型實參可以是下界類自身或其超類(父類)。
常用的通配符:
注意:泛型類型形參可以限定上邊界,不能限定下邊界,否則會報語法錯誤
應用場景 | 範圍限定 | |
? |
一種通配符, 在泛型中傳入類型實參時使用 |
無邊界 固定上邊界 固定下邊界 |
T |
一種表示泛型參數的標識符, 在定義泛型類、泛型接口、泛型方法時作爲類型形參 |
無邊界 固定上邊界 |
泛型的生效期: