简单验证
1 | public interface SuperClass<T> { |
运行javap -c -v SuperClass.class SonClass.class
查看编译后的结果 可以看到SonClass额外生成了一个Object Apply (Object obj)
的桥接方法
1 | . |
分析
我们都知道JAVA泛型并不是真正的泛型,在编译完成后泛型会被擦除,变成Object。如果没有桥接方法,编译完成后其实子类并没有实现父类方法。所以为了语义,编译器会自动生成桥接方法,来保证兼容性。