1. 泛型主要用于编译阶段,编译之后生成的字节码class文件不包含泛型中的类型信息。

    类型参数在编译后会被替换成Object,运行时虚拟机并不知道泛型。

    因此,使用泛型时,如下几种情况是错误的:

    1. 基本类型不能用于泛型

    Test t; 这样写是错的,我们可以使用包装类:Test t;

    1. 不能通过类型参数创建对象

    T t = new T(); 运行时类型参数T会被替换成Object,无法创建T类型的对象,容易引起误解,所以在Java中不支持这种写法。