クラス MethodProxy

java.lang.ObjectSE
org.springframework.cglib.proxy.MethodProxy

public class MethodProxy extends ObjectSE
Enhancer によって生成されたクラスは、インターセプトされたメソッドが呼び出されたときに、このオブジェクトを登録済みの MethodInterceptor オブジェクトに渡します。元のメソッドを呼び出すか、同じ型の別のオブジェクトで同じメソッドを呼び出すために使用できます。
  • メソッドの詳細

    • create

      public static MethodProxy create(ClassSE c1, ClassSE c2, StringSE desc, StringSE name1, StringSE name2)
      Enhancer による内部使用のみ。同様の機能については、FastMethod クラスを参照してください。
    • getSignature

      public Signature getSignature()
      プロキシされたメソッドのシグネチャーを返します。
    • getSuperName

      public StringSE getSuperName()
      スーパークラス(インターセプトされていない)メソッドの実装を呼び出すために invokeSuper(java.lang.Object, java.lang.Object[]) によって使用される CGLIB によって作成された合成メソッドの名前を返します。パラメーターの型は、プロキシされるメソッドと同じです。
    • getSuperIndex

      public int getSuperIndex()
      invokeSuper(java.lang.Object, java.lang.Object[]) で使用されるメソッドの FastClass メソッドインデックスを返します。このインデックスは、生成されたプロキシ内のメソッドを一意に識別するため、外部メタデータを参照できます。
      関連事項:
    • find

      public static MethodProxy find(ClassSE type, Signature sig)
      指定された署名に一致するメソッドをインターセプトするときに使用される MethodProxy を返します。
      パラメーター:
      type - Enhancer によって生成されたクラス
      sig - 一致する署名
      戻り値:
      MethodProxy インスタンス。該当する一致するメソッドが見つからない場合は null
      例外:
      IllegalArgumentExceptionSE - クラスが Enhancer によって作成されていない場合、または MethodInterceptor を使用していない場合
    • invoke

      public ObjectSE invoke(ObjectSE obj, ObjectSE[] args) throws ThrowableSE
      同じ型の別のオブジェクトで、元のメソッドを呼び出します。
      パラメーター:
      obj - 互換性のあるオブジェクト。MethodInterceptor の最初の引数として渡されたオブジェクトを使用すると、再帰が発生します (通常望むものではありません)
      args - インターセプトされたメソッドに渡される引数。型に互換性がある限り、別の引数配列を使用できます
      例外:
      ThrowableSE - 呼び出されたメソッドによってスローされたベア例外は、InvocationTargetException でラップせずにパススルーされます
      関連事項:
    • invokeSuper

      public ObjectSE invokeSuper(ObjectSE obj, ObjectSE[] args) throws ThrowableSE
      指定されたオブジェクトで元の(スーパー)メソッドを呼び出します。
      パラメーター:
      obj - 拡張オブジェクト。MethodInterceptor の最初の引数として渡されたオブジェクトである必要があります
      args - インターセプトされたメソッドに渡される引数。型に互換性がある限り、別の引数配列を使用できます
      例外:
      ThrowableSE - 呼び出されたメソッドによってスローされたベア例外は、InvocationTargetException でラップせずにパススルーされます
      関連事項: