Generic type in Tiger
1. 受限范型是指類型參數(shù)的取值范圍是受到限制的. extends關(guān)鍵字不僅僅可以用來聲明類的繼承關(guān)系, 也可以用來聲明類型參數(shù)(type parameter)的受限關(guān)系.例如, 我們只需要一個存放數(shù)字的列表, 包括整數(shù)(Long, Integer, Short), 實數(shù)(Double, Float), 不能用來存放其他類型, 例如字符串(String), 也就是說, 要把類型參數(shù)T的取值范型限制在Number極其子類中.在這種情況下, 我們就可以使用extends關(guān)鍵字把類型參數(shù)(type parameter)限制為數(shù)字,
2. 在創(chuàng)建范型類的對象的時候, 和創(chuàng)建普通對象基本類似, 必須提供具體的類類型來替代類型參數(shù)T (J2SE 5.0目前不支持原始類型作為類型參數(shù)(type parameter)).
3. T和V雖然看起來是兩個不同的類型參數(shù), 但是在使用這個范型類的時候, T和V很有可能被替換成同一種類型. 因此在聲明多個類型參數(shù)的范型類時, 要注意避免這種二義
性錯誤.
4. J2SE 5.0中提供了范型的通配符"?", "?"可以用來代替任何類型, 例如使用通配符來實現(xiàn)print方法
public static void print(GenList<?> list) {}
而非 public static void print(GenList<T> list){}
5. 范型的一些局限
5.1 類型參數(shù)不能實例化,例如
T t = new T(); // compiling error
5.2 不能實例化類型參數(shù)的數(shù)組
T[] ts = new T[10]; //compilation error
5.3 類的靜態(tài)變量不能聲明為類型參數(shù)類型
public class GenClass<T> {
    private static T t; // compiling error
}
5.4 范型類不能繼承自Throwable以及其子類
public GenExpection<T> extends Exception{} // compiling error

The artical in dW.