Java 泛型详解
泛型类
语法
class 泛型类名称<类型形参列表> {
// 这里可以使用类型参数
}
class ClassName<T1, T2, ..., Tn> {
}
class 泛型类名称<类型形参列表> extends 继承类 {
// 这里可以使用类型参数
}
class ClassName<T1, T2, ..., Tn> extends ParentClass<T1> {
// 可以只使用部分类型参数
}
使用
// 定义一个泛型类引用
class MyArray<T> {
public Object[] array = new Object[10];
public void set(int pos, T val) { array[pos] = val; }
public T get(int pos) { return (T)array[pos]; }
public Object[] getArray() { return array; }
}
public class Test {
public static void main(String[] args) {
MyArray<String> myArray = new MyArray<>();
}
}
泛型上界
在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。
定义
class 泛型类名称<类型形参 extends 类型边界> {
...
}
使用
<T > {
Object[] array = [];
{ array[pos] = val; }
T { (T)array[pos]; }
Object[] getArray() { array; }
}
{
{
MyArray<Integer> myArray = <>();
}
}


