泛型

這是我在總結以前所學的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在泛型使用中有什麼區別呢?
  應用場景 範圍限定

一種通配符, 在泛型中傳入類型實參時使用

無邊界 固定上邊界 固定下邊界

T

一種表示泛型參數的標識符, 在定義泛型類、泛型接口、泛型方法時作爲類型形參

無邊界 固定上邊界

   泛型的生效期:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章