【发布时间】:2017-12-04 09:50:56
【问题描述】:
正如Java Tutorial 中所述,桥接方法意味着它也是一种合成方法。问题是,isSynthetic 方法的调用是否有可能返回 true,但 isBridge 方法对于 Method 对象返回 false,即,如果一个方法是合成的,是否意味着它也是一个桥方法?
不完全相同,但isSynthetic 和isBridge 方法的源代码如下所示:
static final int SYNTHETIC = 0x00001000;
public boolean isSynthetic() {
return (getModifiers() & SYNTHETIC) != 0;
}
static final int BRIDGE = 0x00000040;
public boolean isBridge() {
return (getModifiers() & BRIDGE) != 0;
}
为什么isBridge 方法体不像return isSynthetic();?
【问题讨论】:
-
这些方法只是返回对应修饰符的值;该类可能只是一个数据持有者。至关重要的是如何设置修饰符的逻辑。
-
我也是这么想的。修饰符是通过构造函数设置的。但我找不到它的用法。
标签: java reflection java-synthetic-methods