程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> 在Eclipse 3.1中體驗J2SE 5.0的新特性: 第三部分 :范型(5)

在Eclipse 3.1中體驗J2SE 5.0的新特性: 第三部分 :范型(5)

編輯:J2SE

3.3.4 使用通配符
 
前面我們創建了范型的列表, 如果我需要一個方法來處理范型列表, 例如, 我們希望 把列表中的每個元素都打印出來, 但是類型參數(type parameter)只能使用在聲明一個范 型類的時候, 如果類型參數使用在函數定義裡會導致編譯錯誤
 
public static void print(GenList<T> list){}  //編譯錯誤

在這種情況下, 我們需要用另外一種方法來表示一個范型類, 否則, 就可能需要書寫 多個print函數
 
public static void print(GenList<Integer> list){}
 public static void print(GenList<Double> list){}
 …
 public static void print(GenList<String> list){}
 
J2SE 5.0中提供了范型的通配符"?", "?"可以用來代替任何類型, 例如使用通配符來 實現print方法
 
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 GenExpection<T> extends Exception{}  //編譯錯誤

3.5.范型小結
 
范型是J2SE 5.0所提供的一項強大的功能, 使用范型可以創建類型安全的、可重用的 代碼, 雖然目前Java的范型還無法和C++的范型相提並論, 但是, 隨著Java語言本事的演 進, 范型會在Java語言中發揮更大的作用的.

本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201104/25425_5.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved