2,运行时类型检查只是针对泛型类的原始类型进行的。getClass()方法只返回原始类型,因为JVM根本就不知道泛型这回事,它只知道原始类型。
在《Java Core》中提到的
Pair a = new Pair();
a instanceof Pair<String>为真的问题在JDK1.6上面已经不存在,这样的语句是通不过检查的,产生一个"instacneof 泛型类型不合法"的错误。
3,不能在静态域或者静态方法中引用类型变量。
4,不能实例化泛型类型。
5,类型擦除后的冲突。例如:
public class B<T>{
public void fun(T t){ ... }//方法1
public void fun(Object t){ ... }//方法2
}
这两个方法实际上是冲突的,类型擦除后它们具有相同的签名。