Java的桥接方法和BridgeMethodResolver使用
Posted jazon@
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的桥接方法和BridgeMethodResolver使用相关的知识,希望对你有一定的参考价值。
什么是桥接方法
桥接方法是JDK1.5引入泛型之后,为了使Java的泛型方法生成的字节码和1.5版本前的字节码相兼容,由编译器自动生成的方法。
对于实现了泛型接口或继承了泛型抽象类的类,如果没有桥接方法,则在编译器对泛型进行擦除后,不符合语义:泛型擦除后,泛型类型成了Object,如果子类没有一个对应的桥接方法(泛型类型成了Object的方法),则认为是不符合语义,且不兼容1.5之前的字节码了。同样子类的返回值如果是父类的返回值的子类型,也需要一个桥接方法。
什么时候生成桥接方法
- 方法重写的时候子父类返回值不一致
- 子类重写了父类或接口带有泛型的方法
寻找被桥接方法
利用Spring的工具类BridgeMethodResolver
public static Method findBridgedMethod(Method bridgeMethod);
以上是关于Java的桥接方法和BridgeMethodResolver使用的主要内容,如果未能解决你的问题,请参考以下文章
Java的桥接方法和BridgeMethodResolver使用