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:訪問結束通知



作者:技術蝸牛
鏈接:https://www.jianshu.com/p/f1940fc000e5
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

 

請問如何訪問AnnotationVisitor?類似於ClassVisitor這種

AnnotationVisitor裏面就幾個方法,你可以看下AnotationVisior.visitAnnotation方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章