【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )
2023-06-13 09:18:01 时间
文章目录
一、AST 语法树分析
在上一篇博客 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) 中 , 使用 GroovyConsole 工具分析了
class Student{
def name
def hello(){
println "hello"
}
}
类的 AST 语法树 , 下面分析该语法树 ;
展开 AST 语法树后的效果 :
在最顶层的根节点是 ClassNode 节点 , 在根节点下 , 有 方法 Methods 节点 , 字段 Fields 节点 , 属性 Properties 节点 ; 方法 Methods 节点 有
个 , 一个是默认的构造方法 , 一个是自定义的 hello 方法 , 对应
def hello(){
println "hello"
}
方法 ; 字段 Fields 节点 和 属性 Properties 节点 各一个 , 就是自定义的 name 字段 , 对应
def name
成员 ;
拿到了 AST 语法树之后 , 就可以获取到 Student 类的每一个节点 , 类 , 方法 , 属性 , 字段 ;
相关文章
- 利用opacity属性写过渡效果
- Winform自定义控件在属性窗口修改属性后,在窗体设计器不生成代码
- IK分词源码讲解(七)-TokenStream以及incrementToken属性处理「建议收藏」
- jquery选择器用法_jQuery属性选择器
- Java实例属性比较引发的一些思考
- 【Android Gradle 插件】LintOptions 配置 ⑩ ( textReport 属性配置 | textOutput 属性配置 | warningsAsErrors 属性配置 )
- 轻松学习 JavaScript——第 7 部分:对象属性描述符详解编程语言
- Hibernate cache.use_second_level_cache属性:判断是否关闭二级缓存
- JS document节点及其常用属性和方法
- MySQL中fields属性的基本用法与实例解析(mysql中fields)
- 第六节--访问属性和方法
- Javascript入门学习第八篇jsdom节点属性说明
- 在Struts2中如何将父类属性序列化为JSON格式的解决方法
- XML文件修改节点属性值(多种方法)
- jquery选择器之属性过滤选择器详解
- javascript数组操作方法小结和3个属性详细介绍