泛型

泛型:泛型是JDK1.5出現的新特性。

泛型的好處:

1:將運行時出現的問題提前至了編譯時
2:避免了無謂強制類型轉換
泛型是JDK1.5使用的新特性。

泛型在集合中的常見應用:

ArrayList<String> list = new ArrayList<String>();  true   推薦使用

ArrayList<Object> list = new ArrayList<String>();  false
ArrayList<String> list = new ArrayList<Object>();  false

以下兩種寫法注主要是爲了兼顧新老系統的兼容性問題。
ArrayList list = new ArrayList(); true
ArrayList list = new ArrayList(); true

注意:泛型沒有多態的概念,左右兩邊的數據類型必須要一致,或者只寫一邊的泛型類型。

推介使用:兩邊都寫泛型

自定義泛型:

自定義泛型就是一個數據類型的站位符或者理解爲一個數據類型的變量

泛型方法:

修飾符<聲明自定義的泛型>返回值類型 函數名(自定義的泛型 變量名)

泛型方法要注意的事項:

1:泛型方法中的自定義泛型的具體數據類型是在調用該函數的時候傳入實參時確定的
2:自定義泛型所用的標識符只要符合標識符的命名規則即可,但是我們一般都習慣使用一個大寫字母表示

泛型類:

泛型類的定義格式:
class類名<聲明自定義的泛型>{

泛型類要注意的事項:

1:泛型類上的自定義泛型是在使用該類創建對象的時候指定具體的數據類型的
2:如果一個類已經自定義了泛型,使用該類創建對象的時候如果沒有指定泛型的具體數據類型,那麼默認爲Object類型
3:靜態的函數不能使用類上自定義的泛型,如果靜態函數需要使用,必須要在函數上自定義泛型

泛型接口:

泛型接口的定義格式:
interface 接口名<聲明自定義的泛型>{

泛型接口要注意事項:

1:泛型接口上的自定義泛型是在實現該接口的時候指定具體數據類型的
2:如果實現接口的時候沒有指定接口上的自定義泛型的具體數據類型,那麼默認爲Object數據類型
3:如果需要在創建接口實現類對象的時候才指定接口上自定義泛型,那麼需要以下格式:
格式:
class 類名 implements 接口

泛型中的通配符:?

泛型上下限:

? super Integer 允許是Integer數據類型或者是Integer父類類型————泛型的下限
Integer–>Number–>int
? extends Number 允許是Number數據類型或者是Number子類的數據類型——-泛型的上限 Number<——Integer

發佈了56 篇原創文章 · 獲贊 74 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章