解决类型转换的问题java
首先确认一点:ide
java并没真正实现泛型,即意为:在字节码文件中,存储的仍是原始类型。idea
可经过以下代码进行验证:spa
public class Test4 { public static void main(String[] args) { ArrayList<String> arrayList1=new ArrayList<String>(); arrayList1.add("abc"); ArrayList<Integer> arrayList2=new ArrayList<Integer>(); arrayList2.add(123); System.out.println(arrayList1.getClass()==arrayList2.getClass()); //输出为true } }
而后,咱们可推断,Java的泛型实现方式:code
Java是在编译器(好比经过idea进行泛型的检查)这一层面进行控制,保证泛型的一致性,在编译时,JVM会将泛型的类型擦除,因此存在字节码文件中的仍然是原始类型(object)。
get