ASM框架学习(四)-AnnotationVisitor和SignatureVisitor

简介

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:访问结束通知
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容