编译器擦除类型参数

8.5.1 类型擦除

类型变量被编译器替换为限定的类型:

  • 没指定限定类型用 Object 替换

image.png
image.png

  • 多个限定类型使用第一个替换

image.png

8.5.2 转换泛型表达式

如果使用 Object 替换类型变量, 那么编译器会自动插入强制类型转换的代码.

8.5.3 转换泛型方法

桥方法.

蒙了, 为了使用泛型, 编译器做了很多黑活.

image.png

8.5.4 调用遗留代码