4

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

4

3 回答 3

4

此页面有如何使用的实际示例:@Singleton、@Lazy、@Immutable、@Delegate、@Newify、@Category、@Mixin、@PackageScope

于 2010-02-05T15:10:52.470 回答
3

像这样的场景:

  • 授权检查 - 通过从上下文检查角色来确保安全
  • 打印调用方法的参数值
  • 断言参数不为空或任何验证
  • 检查方法的各种入口条件/前置条件
  • 通用 AOP 风格 BeforeMethod() 实现
  • 创建一个方法并将其标记为 runnable 或 main 方法

看看我在AST AOPAST Param not null上的博客文章

希望这可以帮助!

于 2010-02-10T23:41:32.677 回答
0

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

您也可以直接使用转换,但您想要它们的大部分内容已经构建。你可以用其他语言做你可能想用 AOP 做的事情。

于 2010-02-05T13:46:38.180 回答