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

public class Test {

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

}

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

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

}

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