パッケージ org.springframework.core

クラス BridgeMethodResolver

java.lang.ObjectSE
org.springframework.core.BridgeMethodResolver

public final class BridgeMethodResolver extends ObjectSE
合成 bridge Methods をブリッジングされる MethodSE に解決するためのヘルパー。

合成 bridge Method を指定すると、ブリッジされている MethodSE が返されます。ブリッジメソッドは、パラメーター化された引数を持つメソッドを持つパラメーター化された型を継承するときに、コンパイラーによって作成されます。実行時の呼び出し中に、ブリッジ MethodSE を呼び出したり、リフレクションを介して使用したりできます。MethodsSE でアノテーションを検索する場合は、必要に応じてブリッジ MethodsSE をチェックし、ブリッジされた MethodSE を見つけることをお勧めします。

ブリッジメソッドの使用の詳細については、Java 言語仕様を参照してください。

導入:
2.0
作成者:
Rob Harrop, Juergen Hoeller, Phillip Webb
  • メソッドの詳細

    • findBridgedMethod

      public static MethodSE findBridgedMethod(MethodSE bridgeMethod)
      提供された bridge MethodSE のローカルの元のメソッドを見つけます。

      非ブリッジ MethodSE インスタンスを渡してこのメソッドを呼び出すのは安全です。このような場合、提供された MethodSE インスタンスは呼び出し元に直接返されます。呼び出し元は、このメソッドを呼び出す前にブリッジを確認する必要はありません。

      パラメーター:
      bridgeMethod - 宣言クラスに対してイントロスペクトするメソッド
      戻り値:
      元の方法 (ブリッジされたメソッド、または特定のメソッドが見つからなかった場合は渡されたメソッド)
      関連事項:
    • getMostSpecificMethod

      public static MethodSE getMostSpecificMethod(MethodSE bridgeMethod, @Nullable ClassSE<?> targetClass)
      ローカル宣言クラスで使用できない場合でも、指定されたクラス階層内で指定された bridge MethodSE に対して最も具象メソッドを決定します。

      これは実質的に ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>)findBridgedMethod(java.lang.reflect.Method) の組み合わせであり、同じクラス階層レベルでブリッジメソッドが生成されていない場合でも、元のメソッドを解決します (Eclipse コンパイラーと通常の javac の既知の違い)。

      パラメーター:
      bridgeMethod - 指定されたターゲットクラスに対してイントロスペクトするメソッド
      targetClass - 対象クラスで最も具象メソッドを見つける
      戻り値:
      与えられたブリッジメソッドに対応する最も具象メソッド (より具体的な方法が見つからない場合は、元の方法を使用できます)
      導入:
      6.1.3
      関連事項:
    • isVisibilityBridgeMethodPair

      public static boolean isVisibilityBridgeMethodPair(MethodSE bridgeMethod, MethodSE bridgedMethod)
      ブリッジメソッドとブリッジするメソッドのシグネチャーを比較します。パラメーターと戻り値の型が同じ場合、これは JDK-6342411 を修正するために Java 6 で導入された「可視性」ブリッジメソッドです。
      戻り値:
      説明どおりに署名が一致するかどうか