老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

什么是ClassVisitor

這篇文章主要講解了“什么是ClassVisitor”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“什么是ClassVisitor”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到高陽網站設計與高陽網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站設計、網站制作、企業官網、英文網站、手機端網站、網站推廣、域名注冊、網絡空間、企業郵箱。業務覆蓋高陽地區。

簡介

ClassVisitor是用來生成asm和改變字節碼的,ClassVisitor是一個訪問字節碼的框架,其對字節碼的創建和修改主要是通過其內部的ClassVisitor具體實現來代理的;
ClassVisitor對一個java類的訪問是有一定順序的,其具體順序如下:

visit [visitSource] [visitModule] [visitNestHost][visitOuterClass](visitAnnotation | visitTypeAnnotation|visitAttribute)*
(visitNestMember|visitInnerClass|visitField| visitMethod)* visitEnd;
說明:visit,visitEnd必須調用一次,[]表示最多調用一次;
()*表示()里面的訪問可以按照排列順序調用多次;

方法說明

  • visit:訪問類的頭部,

public void visit(final int version,final int access,  final String name,  final String signature, final String superName, final String[] interfaces){ if (cv != null) {  cv.visit(version, access, name, signature, superName, interfaces);}};
其中version指的是類的版本;
acess指的是類的修飾符;
name類的名稱;
signature類的簽名,如果類不是泛型或者沒有繼承泛型類,那么signature為空;
superName類的父類名稱;
  • visitSource: 訪問類的源碼,就是.java文件,一般情況用不上;

  public void visitSource(final String source, final String debug) {if (cv != null) {  cv.visitSource(source, debug);}
  }
  • visitModule:暫時不清楚用來干嘛的,用的比較少;

  • visitNestHost:訪問類的nest host;

nest 指的一個共享私有成員變量的包名相同的class集合,nest中有一個host(主類)和多個members(成員類),jdk11為了提供更大,更廣泛的嵌套類型,并且為了補足訪問控制檢測不足,引進了兩個新的class文件屬性,nest host 和nest member,nest host中包含了一個nest members列表,用來確定其他靜態nest members;nest member中包含了一個nest host屬性用來確定它的nesthost;

  • visitOuterClass: 訪問類的外部類,一般用于nest-class;

  • visitAnnotation:訪問類的注解;

  public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) {if (cv != null) {  return cv.visitAnnotation(descriptor, visible);}return null;
  }其中:
descriptor:表示類注解類的描述;
visible表示該注解是否運行時可見;return AnnotationVisitor:表示該注解類的Visitor,可以用來訪問注解值;
  • visitTypeAnnotation:訪問類的簽名類型(某個泛型)的注解;

 public AnnotationVisitor visitTypeAnnotation(  final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {if (api < Opcodes.ASM5) {  throw new UnsupportedOperationException("This feature requires ASM5");}if (cv != null) {  return cv.visitTypeAnnotation(typeRef, typePath, descriptor, visible);}return null;
  }其中:typeRef:指的是類型引用,在這里只能是TypeReference.(CLASS_TYPE_PARAMETER |CLASS_TYPE_PARAMETER_BOUND|CLASS_EXTENDS );
typePath:被注解的類型參數,wildcard bound,array element type,包含typeRef的static inner type;descriptor: 注解類的描述;
visible:該注解類型運行時是否可見;
  • visitAttribute:訪問類的非標準屬性;

public void visitAttribute(final Attribute attribute) {if (cv != null) {  cv.visitAttribute(attribute);}
  }
  • visitNestMember:訪問嵌套類的nest member,只有host class被visited時才能調用該方法

  • visitInnerClass:訪問一個內部類的信息;

  • visitField:訪問一個類的域信息,如果需要修改或者新增一個域,可以通過重寫此方法;

  public FieldVisitor visitField( final int access, final String name, final String descriptor,final String signature,  final Object value) {if (cv != null) {  return cv.visitField(access, name, descriptor, signature, value);}return null;
  }其中
access:表示該域的訪問方式,public,private或者static,final等等;
name:指的是域的名稱;
descriptro:域的描述,一般指的是該field的參數類型;signature:指的是域的簽名,一般是泛型域才會有簽名;value:指的該域的初始值
reture FiedVisitor:表示將返回一個可以訪問該域注解和屬性的訪問對象,如果不感興趣的話,可以設置為空;
  • visitMethod:訪問類的方法,如果需要修改類方法信息,則可以重寫此方法;

  public MethodVisitor visitMethod( final int access,final String name,final String descriptor,final String signature, final String[] exceptions) {if (cv != null) {  return cv.visitMethod(access, name, descriptor, signature, exceptions);}return null;
  }其中:
decsriptor:表示方法的參數類型和返回值類型;
  • visitEnd:訪問類的尾部,只有當類訪問結束時,才能調用該方法,同時必須調用該方法;

感謝各位的閱讀,以上就是“什么是ClassVisitor”的內容了,經過本文的學習后,相信大家對什么是ClassVisitor這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!


分享名稱:什么是ClassVisitor
當前地址:http://www.xueling.net.cn/article/gsipse.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 偷妻无码一区二区三区动漫 | 999免费观看视频 | 国产精品久久久久久久久久久久午夜片 | 日韩成人在线免费观看 | 91精选国产 | 秋霞午夜一区二区三区视频 | 精品一区2区三区 | 亚洲日韩中文在线精品第一 | 亚洲国产av无码精品 | 亚洲色网址大全 | 狠狠操在线视频 | 欧美日韩精品在线免费观看 | 日韩AV高清无码 | 日韩1234| 国产极品粉嫩福利在线观看 | a级视频毛片 | 人妻夜夜爽天天爽一区 | 五月丁香六月狠狠爱综合 | 精品国产一区二区三区蜜殿 | 爱逼爱操 | 精品九九九 | 亚洲熟女少妇精品 | 宅男精品一区在线观看 | 精品一区国产日韩视频在线 | 狠狠色综合7777久夜色撩人 | 日本国产一区二区 | 国产白丝无码视频在线观看 | 99在线热播 | 国产FREEXXXX性播放 | 国产一区二区三区成人久久片老牛 | 狠狠影院| 亚洲欧美日韩精品一区二区 | 亚洲阿v天堂在线 | 三级精品在线 | 色窝窝免费播放视频在线 | 在线播放黄色网址 | 嫩草影院入口ncyy | 亚洲一区二区在线看 | 精品国产国产综合精品 | 一区二区三区精密机械公司 | 一本一本久久a久久精品综合麻豆 |