简介
AnnotationVisitor是用来访问Annotation的,SignatureVisitor使用来访问签名的;
AnnotationVisitor
AnnotationVisitor访问顺序如下:
(visit | visitEnum| visitAnnotation | code visitArray )* visitEnd.
()*可以访问多次,而visitEnd只能访问一次;
- visit:访问注解的基本值;
- visitEnum:访问注解的枚举类型值;
- visitAnnotation:访问嵌套注解类型,也就是一个注解可能被其他注解所注释;
- visitArray: 访问注解的数组值;
- visitEnd:访问结束通知;
SignatureVisitor
SignatureVisitor用来访问泛型类型的,其访问顺序如下:
类签名ClassSignature:( visitFormalTypeParameter visitClassBound?
visitInterfaceBound* )* (visitSuperclass visitInterface* )
方法签名MethodSignature:( visitFormalTypeParameter visitClassBound?
visitInterfaceBound* )* ( visitParameterType* visitReturnType visitExceptionType* )
域签名FieldSignature: visitBaseType | visitTypeVariable | visitArrayType | ( visitClassType visitTypeArgument* (visitInnerClassType visitTypeArgument* )* visitEnd ) )
- visitFormalTypeParameter(final String name):访问正规类型参数;
- visitClassBound:访问最后一个被访问的正规类型参数的类界限;
- visitInterfaceBound:访问最后一个被访问的正规类型参数的接口界限;
- visitSuperclass:访问该类型的超类;
- visitInterface:访问该类所实现的接口;
- visitParameterType:访问方法参数类型;
- visitReturnType:访问方法返回值类型;
- visitExceptionType:访问方法异常类型;
- visitBaseType:访问基本类型的签名;
- visitTypeVariable:访问类型变量的签名;
- visitArrayType:访问一个数组类型的签名;
- visitClassType:开始访问类或者接口类型的签名;
- visitInnerClassType:访问内部类;
- visitTypeArgument:访问最后被访问类或者接口的无界限类型参数;
- visitTypeArgument(final char wildcard):访问最后被访问类或者内部类的类型参数;
- visitEnd:访问结束通知