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

举报
韩曙亮 发表于 2022/02/10 22:42:15 2022/02/10
【摘要】 文章目录 一、编译时元编程引入二、声明需要编译时处理的类三、分析 Groovy 类的 AST 语法树 一、编译时元编程引入 在之前的 " 【Groovy】MOP 元...





一、编译时元编程引入



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

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

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

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





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



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

class Student{
    def name
    def hello(){
        println "hello"
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6




三、分析 Groovy 类的 AST 语法树



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

groovyConsole

  
 
  • 1

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

在这里插入图片描述

启动后 , 弹出 GroovyConsole 工具如下 :
在这里插入图片描述
向其中拷贝 Student 类代码 ,

class Student{
    def name
    def hello(){
        println "hello"
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/122795110

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。