日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )

發布時間:2025/6/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、ASTTransformation#visit 方法簡介
  • 二、org.codehaus.groovy.ast.ModuleNode 腳本節點





一、ASTTransformation#visit 方法簡介



在上一篇博客 【Groovy】編譯時元編程 ( 編譯 ASTTransformation | 打包 ASTTransformation 字節碼文件 | 編譯 Groovy 類同進行編譯時處理 ) 中 , 寫的進行 Groovy 編譯時處理 ASTTransformation 如下 :

import org.codehaus.groovy.ast.ASTNode import org.codehaus.groovy.control.SourceUnit import org.codehaus.groovy.transform.ASTTransformation import org.codehaus.groovy.transform.GroovyASTTransformation@GroovyASTTransformation class MyASTTransformation implements ASTTransformation {/*** 編譯時處理方法* @param nodes AST 抽象語法樹節點 , 是 ASTNode 數組類型* @param source 源單元 , 可以通過該對象拿到源文件*/@Overridevoid visit(ASTNode[] nodes, SourceUnit source) {println nodesprintln source} }

打印結果為 :

[org.codehaus.groovy.ast.ModuleNode@2609b277] org.codehaus.groovy.control.SourceUnit@1fd14d74

在 visit 方法中 , ASTNode[] nodes 參數是 AST 語法樹根節點 , SourceUnit source 參數代表源碼 ;





二、org.codehaus.groovy.ast.ModuleNode 腳本節點



ASTNode[] nodes 參數是 AST 語法樹節點 , 該數組的值是

[org.codehaus.groovy.ast.ModuleNode@2609b277]

AST 語法樹節點是 org.codehaus.groovy.ast.ModuleNode 類型對象 ;


org.codehaus.groovy.ast.ModuleNode 是 Groovy 腳本的語法樹節點 ;

  • 其內部封裝的 List<ClassNode> classes = new LinkedList<ClassNode>(); 成員表示該腳本中定義了多少個 Groovy 類節點 ;
  • private List<MethodNode> methods = new ArrayList<MethodNode>(); 成員表示該腳本中有多少個方法 ;
  • private Map<String, ImportNode> imports = new HashMap<String, ImportNode>(); 成員表示導入了多少類 ;

通過 ModuleNode 類 , 可以拿到 Groovy 腳本中幾乎所有的內容 ;


org.codehaus.groovy.ast.ModuleNode 原型如下 :

/*** 表示一個模塊,該模塊通常由一個類聲明組成,* 但可以包括一些導入、一些語句和多個類,* 這些類與Python或Ruby中的腳本等語句混合在一起** @author Jochen Theodorou* @author Paul King* @author <a href="mailto:james@coredevelopers.net">James Strachan</a>*/ public class ModuleNode extends ASTNode implements Opcodes {private BlockStatement statementBlock = new BlockStatement();List<ClassNode> classes = new LinkedList<ClassNode>();private List<MethodNode> methods = new ArrayList<MethodNode>();private Map<String, ImportNode> imports = new HashMap<String, ImportNode>();private List<ImportNode> starImports = new ArrayList<ImportNode>();private Map<String, ImportNode> staticImports = new LinkedHashMap<String, ImportNode>();private Map<String, ImportNode> staticStarImports = new LinkedHashMap<String, ImportNode>();private CompileUnit unit;private PackageNode packageNode;private String description;private boolean createClassForStatements = true;private transient SourceUnit context;private boolean importsResolved = false;private ClassNode scriptDummy;private String mainClassName = null; }

總結

以上是生活随笔為你收集整理的【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产黄色免费网站 | 在线欧美a | 国产一伦一伦一伦 | 亚洲视频91| 久国产精品 | 美女被变态侵犯 | 国产精品v欧美精品v日韩精品 | 手机在线小视频 | 欧美性猛交69 | 成年人免费网站在线观看 | 在线观看毛片av | 少妇吹潮| 99久久精品国产一区二区三区 | 午夜激情一区二区 | 午夜男人av | 国产精品视频第一页 | 天堂av在线资源 | 亚洲激情在线观看 | 都市激情一区 | 欧美久久成人 | 无码无套少妇毛多18pxxxx | 欧美色婷婷 | 日韩激情综合 | 中文字幕+乱码+中文乱 | 国产大片一区二区三区 | 精品人妻久久久久久888不卡 | 青青草免费公开视频 | 小草av在线 | 91精品网| 最新av在线| 俄罗斯av在线 | 国产精品久久久久久久一区二区 | 丁香网五月天 | 99国产精品视频免费观看一公开 | 就去吻综合 | 在线成人av网站 | 欧美大肥婆大肥bbbbb | 国产区一区二区 | 欧美日本一本 | 黄瓜污视频 | 香蕉黄视频 | 欧美大片免费观看 | 亚洲av成人无码一区二区三区在线观看 | 国产精品永久在线 | 动漫美女被到爽 | 超碰资源在线 | 日韩欧美视频在线播放 | 中国黄色1级片 | 自拍偷拍亚洲图片 | 99免费视频| 国产精品区二区三区日本 | 亚洲大尺度在线观看 | 国产欧美一区二区三区在线老狼 | 超碰网站在线观看 | 免费a视频| 人人艹在线 | 精品久久免费视频 | 久操色| 人人干人 | 女女互慰吃奶互揉调教捆绑 | 亚洲激情网址 | 国产精品99| 久久免费国产 | 日韩免费网站 | 亚洲婷婷一区 | 国产一页 | 国产精品人人爽人人爽 | 亚洲人视频在线观看 | 国产成人无码精品久久 | 成人看| 插插宗合网| 欧美成人自拍视频 | 二区三区偷拍浴室洗澡视频 | 久久精品视频免费看 | 亚洲深爱 | 大粗鳮巴久久久久久久久 | 成人黄色大全 | 精品久久久99 | 污污内射在线观看一区二区少妇 | 亚洲成人av一区 | 中文字幕在线日本 | 影音先锋成人资源网 | 精品一区91 | 懂色av色吟av夜夜嗨 | 麻豆国产av超爽剧情系列 | 国产www免费 | 在线波多野结衣 | 亚洲污网站 | 久久网页 | av成人免费在线观看 | 久草免费在线视频 | 国产一区二区三区三州 | www免费视频 | a成人在线| 成人av片在线观看 | 全国男人天堂网 | 欧美激情一区二区 | 免费黄色高清视频 | 日韩中文字幕久久 |