泛型
泛型的本质是参数化类型,泛型提供了编译时类型的安全检测机制,该机制允许程序在编译时检测非法的类型。
类型擦除
在编码阶段采用泛型时加上的类型参数,会被编译器在编译时去掉,这个过程就被称为类型擦除。因此,泛型主要用于编译阶段,在编译后生成的 Java 字节文件中不包含泛型的类型信息。
Java 类型的擦除过程为:
首先,查找用来替换类型参数的具体类(该具体类一般为 Object),如果指定了类型参数的上界,则以该上界作为替换时的具体类;
然后,把代码中的类型参数都替换为具体的类。
最后更新于