类型擦除(Types Erasure)

优质
小牛编辑
134浏览
2023-12-01

泛型用于在编译时进行更严格的类型检查并提供通用编程。 为了实现通用行为,java编译器应用类型擦除。 类型擦除是编译器用实际的类或桥接方法替换泛型参数的过程。 在类型擦除中,编译器确保不会创建额外的类,也不会有运行时开销。

键入Erasure规则

  • 如果使用有界类型参数,则使用其绑定替换泛型类型中的类型参数。

  • 如果使用无界类型参数,则使用Object替换泛型类型参数。

  • 插入类型转换以保持类型安全。

  • 生成桥接方法以保持扩展泛型类型中的多态性。