泛型用于在编译时进行更严格的类型检查并提供通用编程。 为了实现通用行为,java编译器应用类型擦除。 类型擦除是编译器用实际的类或桥接方法替换泛型参数的过程。 在类型擦除中,编译器确保不会创建额外的类,也不会有运行时开销。
如果使用有界类型参数,则使用其绑定替换泛型类型中的类型参数。
如果使用无界类型参数,则使用Object替换泛型类型参数。
插入类型转换以保持类型安全。
生成桥接方法以保持扩展泛型类型中的多态性。