类型参数和类型变量不是在运行时具体化的。因此,不同的参数化类型是由相同的类或接口在运行时实现的。的确,给定泛型类型声明的所有调用共享同一运行时实现。
---- 摘自《Java语言规范第三版》第四章划线部分到底啥意思 ,看不懂求解释!!!!!!!!!!!!!!!!!jsljava 语言规范
---- 摘自《Java语言规范第三版》第四章划线部分到底啥意思 ,看不懂求解释!!!!!!!!!!!!!!!!!jsljava 语言规范
List<String> list = new ArrayList<String>();编译期就把接口和类中的T全部替换为String了。
因此,不同的参数化类型是由相同的类或接口在运行时实现的:
告诉你运行时泛型类仅仅是一个类,不会因为类型参数不同就有多个class文件
List<String>、List<Integer>是一个类,只有一个class文件。
编译器会抹掉泛型的……