首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2SE

在 Eclipse 3.1 中體驗 J2SE 5.0 新特性(三):泛型進階——通配符與限制

     編輯:J2SE

3.3.4 使用通配符

建立泛型集合後,若需編寫處理泛型列表的方法(如列印所有元素),類型參數 T 僅能用於泛型類別宣告,不可直接用於方法定義,否則編譯錯誤:

public static void print(GenList<T> list) {} // 編譯錯誤

若不使用通配符,必須為每種類型重載方法:

public static void print(GenList<Integer> list) {}
public static void print(GenList<Double> list) {}
// ...

J2SE 5.0 提供泛型通配符 ?,可代表任意類型:

public static void print(GenList<?> list) {}

3.4 泛型的限制

  1. 類型參數不可實例化:T t = new T(); 編譯錯誤。
  2. 不可建立類型參數陣列:T[] ts = new T[10]; 編譯錯誤。
  3. 靜態成員不可為類型參數:
    public class GenClass<T> {
        private static T t; // 編譯錯誤
    }
  4. 泛型類別不可繼承 Throwable:public GenException<T> extends Exception {} 編譯錯誤。

3.5 泛型小結

泛型是 J2SE 5.0 的強大功能,能建立型別安全、可重用的程式碼。雖 Java 泛型目前仍不及 C++ 模板強大,但隨語言演進,其在 Java 中的角色將愈發重要。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved