このJava Tutorialに記載されているように、ブリッジメソッドは合成メソッドでもあることを意味します。問題は、isSynthetic
メソッドの呼び出しがtrueを返す可能性がありますが、Method
オブジェクトの場合はisBridge
メソッドがfalseを返します。つまり、メソッドが合成の場合は、それもブリッジメソッドであることを暗示しますか?Java合成方法とブリッジメソッドの混同
それはまったく同じではありませんが、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();
のようではないのはなぜ?
これら:
のようなエントリがありますメソッドは対応する値を返すだけです修飾子を付ける。おそらくクラスは単なるデータ所有者です。重要なのは、修飾子の設定方法の論理です。 –
私は同じ考えをしていました。修飾子はコンストラクタによって設定されます。しかし、私はそれの用法を見つけることができません。 –