类 MethodProxy
- java.lang.Object
- org.springframework.cglib.proxy.MethodProxy
public class MethodProxy extends Object
Classes generated byEnhancer
pass this object to the registeredMethodInterceptor
objects when an intercepted method is invoked. It can be used to either invoke the original method, or call the same method on a different object of the same type.
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 static MethodProxy
create(Class c1, Class c2, String desc, String name1, String name2)
For internal use byEnhancer
only; see theFastMethod
class for similar functionality.static MethodProxy
find(Class type, org.springframework.cglib.core.Signature sig)
Return theMethodProxy
used when intercepting the method matching the given signature.org.springframework.cglib.core.Signature
getSignature()
Return the signature of the proxied method.int
getSuperIndex()
Return theFastClass
method index for the method used byinvokeSuper(java.lang.Object, java.lang.Object[])
.String
getSuperName()
Return the name of the synthetic method created by CGLIB which is used byinvokeSuper(java.lang.Object, java.lang.Object[])
to invoke the superclass (non-intercepted) method implementation.Object
invoke(Object obj, Object[] args)
Invoke the original method, on a different object of the same type.Object
invokeSuper(Object obj, Object[] args)
Invoke the original (super) method on the specified object.
方法详细资料
create
public static MethodProxy create(Class c1, Class c2, String desc, String name1, String name2)
For internal use byEnhancer
only; see theFastMethod
class for similar functionality.
getSignature
public org.springframework.cglib.core.Signature getSignature()
Return the signature of the proxied method.
getSuperName
public String getSuperName()
Return the name of the synthetic method created by CGLIB which is used byinvokeSuper(java.lang.Object, java.lang.Object[])
to invoke the superclass (non-intercepted) method implementation. The parameter types are the same as the proxied method.
getSuperIndex
public int getSuperIndex()
Return theFastClass
method index for the method used byinvokeSuper(java.lang.Object, java.lang.Object[])
. This index uniquely identifies the method within the generated proxy, and therefore can be useful to reference external metadata.- 另请参阅:
getSuperName()
find
public static MethodProxy find(Class type, org.springframework.cglib.core.Signature sig)
Return theMethodProxy
used when intercepting the method matching the given signature.- 参数:
type
- the class generated by Enhancersig
- the signature to match- 返回:
- the MethodProxy instance, or null if no applicable matching method is found
- 抛出:
IllegalArgumentException
- if the Class was not created by Enhancer or does not use a MethodInterceptor
invoke
public Object invoke(Object obj, Object[] args) throws Throwable
Invoke the original method, on a different object of the same type.- 参数:
obj
- the compatible object; recursion will result if you use the object passed as the first argument to the MethodInterceptor (usually not what you want)args
- the arguments passed to the intercepted method; you may substitute a different argument array as long as the types are compatible- 抛出:
Throwable
- the bare exceptions thrown by the called method are passed through without wrapping in anInvocationTargetException
- 另请参阅:
MethodInterceptor.intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], org.springframework.cglib.proxy.MethodProxy)
invokeSuper
public Object invokeSuper(Object obj, Object[] args) throws Throwable
Invoke the original (super) method on the specified object.- 参数:
obj
- the enhanced object, must be the object passed as the first argument to the MethodInterceptorargs
- the arguments passed to the intercepted method; you may substitute a different argument array as long as the types are compatible- 抛出:
Throwable
- the bare exceptions thrown by the called method are passed through without wrapping in anInvocationTargetException
- 另请参阅:
MethodInterceptor.intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], org.springframework.cglib.proxy.MethodProxy)