Java泛型类型擦除


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

输入擦除规则

  • 如果使用有界的类型参数,则用通用类型中的类型参数替换它们的边界。

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

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

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