泛型主要用于编译阶段,编译之后生成的字节码class文件不包含泛型中的类型信息。类型参数在编译后会被替换成Object,运行时虚拟机并不知道泛型。 因此,使用泛型时,如下几种情况是错误的: 基本类型不能用于泛型 Test t; 这样写是错的,我们可以使用包装类:Test t; 不能通过类型参数创建对象 T t = new T(); 运行时类型参数T会被替换成Object,无法创建T类型的对象,容易引起误解,所以在Java中不支持这种写法。