用途

解决类型转换的问题

如何实现

首先确认一点:

java并没真正实现泛型,即意为:在字节码文件中,存储的还是原始类型。

可通过如下代码进行验证:

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的泛型实现方式:

 Java是在编译器(比如通过idea进行泛型的检查)这一层面进行控制,保证泛型的一致性,在编译时,JVM会将泛型的类型擦除,所以存在字节码文件中的仍然是原始类型(object)。
    

04-09 14:55