天天看點

Java泛型

1.定義

    Java的泛型:建立集合容器時規定其允許儲存的元素類型,

                     然後又編譯器負責添加元素的類型合法性檢查,

                     在取用幾何元素時則不必再進行造型處理。

    例如:

Java泛型
Java泛型

View Code

2.泛型向後相容

       由于泛型是JDK中後面新加入的特性,

       是以為了向過去相容,新的編譯器編譯舊程式會出現警告

       可以通過使用 SuppressWarnings注解關閉編譯提示資訊

       eg:

Java泛型
Java泛型

3.泛型類:有類型參數修飾的類型成為泛型類

       格式:資料類型<類型參數>

           public class Vector<E>{

                 public void addElement(E obj){

                 }

            }

Java泛型
Java泛型

4.泛型進階:

        4.1.同一個泛型類搭配不同的類型參數複合而成的類型屬于同一個類,

             但卻是不同的類型(總之,泛型就是一種特殊的類型)

        eg:

        Vector<String> 與 Vector<Double> 就不是同一類型

        4.2.同一個泛型類于不同的類型參數複合而成的類型間并不存在繼承關系,

              即使是類型參數間存在繼承關系是也是如此(否則會亂套)

Java泛型
Java泛型

5.類型通配符“?”

      使用“?”作為類型參數

      5.1. Vector<?>是任何泛型Vector的父類型

      5.2. Vector<?>類型的變量在調用方法時是受限制的--凡是必須知道具體類型參數才能進行的操作均被禁止

6.受限制的通配符(限制更嚴格)

     eg:

         public class Test<T extends Number>{//這裡的T附加了必須繼承Number類的條件

         }