前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

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

文章目录

一、编译时元编程引入


在之前的 " 【Groovy】MOP 元对象协议与元编程 " 系列博客中 , 都是围绕 MetaClass 的 " 运行时元编程 " , 其在运行时才进行相关的元编程操作 , 如方法注入 , 方法委托等 ;

在编译时也可以进行元编程操作 ;

在 Java 和 Android 中 , 可以使用 注解处理器 AbstractProcessor 实现 APT 编译时技术 , 参考 【Android APT】 专栏 ;

在 Groovy 中实现的编译时技术 , 类似于 Java 中的编译时技术 ;

二、声明需要编译时处理的类


声明一个 Student 类 , 在其中定义成员变量和成员方法 ; 之后需要在编译时处理该类 ;

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

三、分析 Groovy 类的 AST 语法树


参考 【Groovy】Groovy 环境搭建 ( 下载 Groovy | 安装 Groovy | 配置 Groovy 环境变量 ) 博客 , 配置环境变量后 , 执行

代码语言:javascript
复制
groovyConsole

命令 , 启动 Y:\001_DevelopTools\024_Groovy\groovy-4.0.0\bin\groovyConsole.bat 程序 , 如果在 Linux 中启动的是 groovyConsole 可执行文件 ;

启动后 , 弹出 GroovyConsole 工具如下 :

向其中拷贝 Student 类代码 ,

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

选择 GroovyConsole 工具菜单栏 Script 下的 Inspect AST 选项 , 分析上述 Student 类的 AST 语法树 ;

分析结果在 Groovy AST Browser 对话框中显示 ;

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、编译时元编程引入
  • 二、声明需要编译时处理的类
  • 三、分析 Groovy 类的 AST 语法树
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档