泛型之类型擦除
泛型信息只存在于代码编译阶段,在进入JVM之前,与泛型相关的信息会被擦除掉,专业术语叫做类型擦除。
通俗地讲,泛型类和普通类在java虚拟机内没有什么不同。
实例:
List<String> 1=new ArrayList<String>();
List<Integer> 2=new ArrayList<Integer>();
System.out.println(1.getClass()=2.getClass());
打印结果为:true。
原因是:List<String>和List<Integer>在JVM中的Class都是List.class。泛型信息被擦除了。