下面通過一個列表的例子來具體說明如果聲明范型類和類型參數的用法.
清單3.2.2, 范型列表
public class GenList <T>{
private T[] elements;
private int size = 0;
private int length = 0;
public GenList(int size) {
elements = (T[])new Object[size];
this.size = size;
}
public T get(int i) {
if (i < length) {
return elements[i];
}
return null;
}
public void add(T e) {
if (length < size - 1)
elements[length++] = e;
}
}
在列表的例子中, 類型參數T被用來表示列表中的元素的類型, 即, 這個列表中的元素 是T類型的.
在使用這個列表時, 這個類型參數T會被具體的類型所替代.
注意, 由於T時類型參數不是具體的類, 所以不能使用new操作符創建T的對象,例如new T(), 或者, new T[10].
3.2.2 范型接口
在J2SE 5.0中, 不僅僅可以聲明范型類, 也可以聲明范型接口, 聲明范型接口和聲明 范型類的語法類似, 也是在接口命稱後面加上<T>. 例如,
清單3.2.3, 范型接口
public interface GenInterface<T> {
void func(T t);
}
3.2.3聲明多個類型參數的范型類或者接口
在聲明范型類的時候, 可是使用多個類型參數. 多個類型參數之間用逗號分開, 例 如,
清單3.2.4, 多個類型參數的范型類
public class GenMap<T, V> {}
Eclipse 3.1的類創建向導支持創建范型類, 如下圖所示,
圖3.2.1 使用類向導創建范型類
本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201104/25425_2.htm