クラス MethodProxy
java.lang.ObjectSE
org.springframework.cglib.proxy.MethodProxy
Enhancer
によって生成されたクラスは、インターセプトされたメソッドが呼び出されたときに、このオブジェクトを登録済みの MethodInterceptor
オブジェクトに渡します。元のメソッドを呼び出すか、同じ型の別のオブジェクトで同じメソッドを呼び出すために使用できます。メソッドのサマリー
修飾子と型メソッド説明static MethodProxy
Enhancer
による内部使用のみ。同様の機能については、FastMethod
クラスを参照してください。static MethodProxy
指定された署名に一致するメソッドをインターセプトするときに使用されるMethodProxy
を返します。プロキシされたメソッドのシグネチャーを返します。int
invokeSuper(java.lang.Object, java.lang.Object[])
で使用されるメソッドのFastClass
メソッドインデックスを返します。スーパークラス(インターセプトされていない)メソッドの実装を呼び出すためにinvokeSuper(java.lang.Object, java.lang.Object[])
によって使用される CGLIB によって作成された合成メソッドの名前を返します。同じ型の別のオブジェクトで、元のメソッドを呼び出します。invokeSuper
(ObjectSE obj, ObjectSE[] args) 指定されたオブジェクトで元の(スーパー)メソッドを呼び出します。
メソッドの詳細
create
public static MethodProxy create(ClassSE c1, ClassSE c2, StringSE desc, StringSE name1, StringSE name2) Enhancer
による内部使用のみ。同様の機能については、FastMethod
クラスを参照してください。getSignature
プロキシされたメソッドのシグネチャーを返します。getSuperName
スーパークラス(インターセプトされていない)メソッドの実装を呼び出すためにinvokeSuper(java.lang.Object, java.lang.Object[])
によって使用される CGLIB によって作成された合成メソッドの名前を返します。パラメーターの型は、プロキシされるメソッドと同じです。getSuperIndex
public int getSuperIndex()invokeSuper(java.lang.Object, java.lang.Object[])
で使用されるメソッドのFastClass
メソッドインデックスを返します。このインデックスは、生成されたプロキシ内のメソッドを一意に識別するため、外部メタデータを参照できます。- 関連事項:
find
指定された署名に一致するメソッドをインターセプトするときに使用されるMethodProxy
を返します。- パラメーター:
type
- Enhancer によって生成されたクラスsig
- 一致する署名- 戻り値:
- MethodProxy インスタンス。該当する一致するメソッドが見つからない場合は null
- 例外:
IllegalArgumentExceptionSE
- クラスが Enhancer によって作成されていない場合、または MethodInterceptor を使用していない場合
invoke
同じ型の別のオブジェクトで、元のメソッドを呼び出します。- パラメーター:
obj
- 互換性のあるオブジェクト。MethodInterceptor の最初の引数として渡されたオブジェクトを使用すると、再帰が発生します (通常望むものではありません)args
- インターセプトされたメソッドに渡される引数。型に互換性がある限り、別の引数配列を使用できます- 例外:
ThrowableSE
- 呼び出されたメソッドによってスローされたベア例外は、InvocationTargetException
でラップせずにパススルーされます- 関連事項:
invokeSuper
指定されたオブジェクトで元の(スーパー)メソッドを呼び出します。- パラメーター:
obj
- 拡張オブジェクト。MethodInterceptor の最初の引数として渡されたオブジェクトである必要がありますargs
- インターセプトされたメソッドに渡される引数。型に互換性がある限り、別の引数配列を使用できます- 例外:
ThrowableSE
- 呼び出されたメソッドによってスローされたベア例外は、InvocationTargetException
でラップせずにパススルーされます- 関連事項: