Java 泛型类型擦除是指在 Java 中使用泛型时,编译器会将指定的类型参数替换为它的边界或 Object,从而在运行时丢失泛型类型信息。 示例:

public class Test {

public void test(T t) {
    System.out.println(t.getClass());
}
Plain text

}

在编译上面的代码时,编译器会将 T 替换为 Object,因此编译后的代码会变成:
public class Test {

public void test(Object t) {
    System.out.println(t.getClass());
}
Plain text

}

当运行上面的代码时,由于 T 被替换为 Object,因此程序无法知道 t 的真实类型,因此 t.getClass() 的返回值总是 java.lang.Object。