Java 泛型核心机制、类型擦除与实战技巧
Java 泛型是语言层面的重要特性,它让我们在编译期就能获得类型安全,同时保持代码的复用性。不过,理解其背后的原理(尤其是类型擦除)对于编写健壮的泛型代码至关重要。下面我们从基础语法开始,逐步深入到边界约束和通配符的使用。
泛型类
语法规范
定义泛型类时,只需在类名后加上尖括号包裹的类型形参即可。
class ClassName<T1, T2, ..., Tn> {
// 这里可以使用类型参数
}
如果需要继承,也可以指定父类的泛型参数:
class ClassName<T1, T2, ..., Tn> extends ParentClass<T1> {
// 可以只使用部分类型参数
}
实际使用
实例化时,必须明确具体的类型实参。
MyArray<String> myArray = new MyArray<>();
下面是一个完整的示例,展示如何定义一个通用的数组容器:
class MyArray<T> {
private 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 <>();
}
}


