在阅读Spring boot的mvc源码的时候,发现Spring mvc 检查了好多method.isBridge()来判断是否是桥接方法。
桥接方法是Java编译后再生成的方法。
举例:
1. 没有生成桥接方法
public interface ITest{
<T> T test (T t);
}
public class Test implements ITest {
@Override
public <T> T test(T t) {
return t;
}
public static void main(String args[]) {
String print = ClassUtil.getGenericMethodSimpleString(Test.class);
System.out.println(print);
}
}
打印方法列表:
public T test(T)
public static void main(String[])
2. 生成了桥接方法
public interface ITest2<T> {
T test(T t);
}
public class Test2 implements ITest2<String> {
@Override
public String test(String t) {
return t;
}
public static void main(String args[]) {
String print = ClassUtil.getGenericMethodSimpleString(Test2.class);
System.out.println(print);
}
}
打印方法列表
public Object Test2.test(Object)
public String Test2.test(String)
public static void Test2.main(String[])