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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )相关的知识,希望对你有一定的参考价值。

文章目录





一、AST 语法树分析



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

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

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

展开 AST 语法树后的效果 :


在最顶层的根节点是 ClassNode 节点 , 在根节点下 , 有 方法 Methods 节点 , 字段 Fields 节点 , 属性 Properties 节点 ;
方法 Methods 节点 有 2 2 2 个 , 一个是默认的构造方法 , 一个是自定义的 hello 方法 , 对应

    def hello()
        println "hello"
    

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

def name

成员 ;


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

以上是关于Groovy编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )的主要内容,如果未能解决你的问题,请参考以下文章

Groovy编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)

Groovy编译时元编程 ( 利用注解进行 AST 语法树转换 | 定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 | AST 转换接口实现 )

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

Groovy11_编译时元编程

Groovy11_编译时元编程

GroovyGroovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )