前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )

【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )

作者头像
韩曙亮
发布2023-03-30 11:04:52
9610
发布2023-03-30 11:04:52
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、AST 语法树分析


在上一篇博客 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) 中 , 使用 GroovyConsole 工具分析了

代码语言:javascript
复制
class Student{
    def name
    def hello(){
        println "hello"
    }
}

类的 AST 语法树 , 下面分析该语法树 ;

展开 AST 语法树后的效果 :

在最顶层的根节点是 ClassNode 节点 , 在根节点下 , 有 方法 Methods 节点 , 字段 Fields 节点 , 属性 Properties 节点 ;

方法 Methods 节点 有

2

个 , 一个是默认的构造方法 , 一个是自定义的 hello 方法 , 对应

代码语言:javascript
复制
    def hello(){
        println "hello"
    }

方法 ; 字段 Fields 节点 和 属性 Properties 节点 各一个 , 就是自定义的 name 字段 , 对应

代码语言:javascript
复制
def name

成员 ;

拿到了 AST 语法树之后 , 就可以获取到 Student 类的每一个节点 , 类 , 方法 , 属性 , 字段 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、AST 语法树分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档