Groovy - AST Transformations,一个实际的例子

时间:2010-02-04 22:59:31

标签: groovy abstract-syntax-tree

AST Transformations在Groovy中实现。什么是使用AST转换的实际例子?

3 个答案:

答案 0 :(得分:4)

This page有如何使用的实际示例: @Singleton,@ Lazy,@ Unmutable,@ Delegate,@ Newwify,@ Category,@ Mixin,@ PackageScope

答案 1 :(得分:3)

场景如:

  • 授权检查 - 通过检查上下文中的角色来确保安全性
  • 打印用于调用方法的参数值
  • 断言参数不为null或任何验证
  • 检查方法的各种进入条件/前提条件
  • 通用AOP样式BeforeMethod()实现
  • 创建方法并将其标记为以runnable或main方法运行

AST AOPAST Param not null

上查看我的博文

希望这有帮助!

答案 2 :(得分:0)

该页面上提供了大多数使用AST转换的实际示例。我经常使用@Delegate委托给另一个类或@Lazy进行延迟加载。 @Grab非常适合从Maven / ivy存储库中提取依赖项。所有这些都基于AST转换,并且是核心语言的一部分。

您也可以直接使用转换,但是您已经构建了大多数您想要的转换。您可以使用其他语言的AOP执行某些操作。