public class MethodWrap extends java.lang.Object implements Interceptor, MethodHolder
构造器和说明 |
---|
MethodWrap(AppContext ctx,
java.lang.Class<?> clz,
java.lang.reflect.Method m) |
限定符和类型 | 方法和说明 |
---|---|
java.lang.Object |
doIntercept(Invocation inv)
拦截处理
|
<T extends java.lang.annotation.Annotation> |
getAnnotation(java.lang.Class<T> type)
获取函数某种注解
|
java.lang.annotation.Annotation[] |
getAnnotations()
获取函数所有注解
|
java.lang.Class<?> |
getDeclaringClz()
获取申明类
|
java.lang.reflect.ParameterizedType |
getGenericReturnType()
获取函数泛型类型
|
java.util.List<InterceptorEntity> |
getInterceptors()
获取拦截器
|
java.lang.reflect.Method |
getMethod()
获取函数本身
|
java.lang.String |
getName()
获取函数名
|
java.lang.Class<?> |
getOwnerClz()
获取所有者类
|
java.lang.reflect.Parameter[] |
getParameters()
获取函数原始参数
|
ParamWrap[] |
getParamWraps()
获取函数参数
|
java.lang.Class<?> |
getReturnType()
获取函数反回类型
|
java.lang.Object |
invoke(java.lang.Object obj,
java.lang.Object[] args)
执行(原生处理)
|
java.lang.Object |
invokeByAspect(java.lang.Object obj,
java.lang.Object[] args)
执行切面(即带拦截器的处理)
|
boolean |
isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
检测是否存在注解
|
MethodWrap |
ofHandler()
初始化
|
ParamWrap[] |
paramWraps() |
public MethodWrap(AppContext ctx, java.lang.Class<?> clz, java.lang.reflect.Method m)
public ParamWrap[] paramWraps()
public MethodWrap ofHandler()
public java.lang.String getName()
public java.lang.Class<?> getOwnerClz()
getOwnerClz
在接口中 MethodHolder
public java.lang.Class<?> getDeclaringClz()
getDeclaringClz
在接口中 MethodHolder
public java.lang.reflect.Method getMethod()
getMethod
在接口中 MethodHolder
public java.lang.Class<?> getReturnType()
getReturnType
在接口中 MethodHolder
@Nullable public java.lang.reflect.ParameterizedType getGenericReturnType()
public ParamWrap[] getParamWraps()
getParamWraps
在接口中 MethodHolder
public java.lang.reflect.Parameter[] getParameters()
public java.lang.annotation.Annotation[] getAnnotations()
getAnnotations
在接口中 MethodHolder
public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> type)
getAnnotation
在接口中 MethodHolder
public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
public java.util.List<InterceptorEntity> getInterceptors()
getInterceptors
在接口中 MethodHolder
public java.lang.Object doIntercept(Invocation inv) throws java.lang.Throwable
doIntercept
在接口中 Interceptor
inv
- 调用者java.lang.Throwable
public java.lang.Object invoke(java.lang.Object obj, java.lang.Object[] args) throws java.lang.Throwable
obj
- 目标对象args
- 执行参数java.lang.Throwable
public java.lang.Object invokeByAspect(java.lang.Object obj, java.lang.Object[] args) throws java.lang.Throwable
obj
- 目标对象(要求:未代理对象。避免二次拦截)args
- 执行参数java.lang.Throwable