在我看来(从GroovyinAction2Edition)看来,Groovy只能将AST作为可能的AST的一个特定子集来操作--类、方法、字段定义等等。然而,注释/操作任何其他代码似乎是不可能的。
例如,我想做这样的事情
def some_method() {
@with_resource(my_resource) {
// do something
}
}发布于 2013-12-17 10:32:42
使用类ClosureExpression,您可以检测到一个闭包,并做您想要修改的任何事情。这是一个包装实例
AST允许您修改代码中的任何内容,并允许您构造强大的工具。浏览已实现的表达式列表或节点,自己看
编辑:当我们谈论的是注解而不是纯AST时,这里是一个增编
不能注释代码块(或闭包),这不是Groovy限制,而是Java限制,因为注释的目标仅限于这些ElementType
你能做的是:
def some_method(@with_resource(my_resource) Closure cl) {
cl.call()
}https://stackoverflow.com/questions/20620661
复制相似问题