1

我遇到了与 In Groovy 中相同的问题。 有没有办法装饰每个类以添加跟踪? 但是这个答案现在已经有好几年了,所以我想知道现在是否有更好、更简单的方法可以在方法执行之前、之后或周围执行一些代码。我更喜欢带有注释的东西

@TraceLog
class Foo {
   def bar() {
       println "in bar"
   }
}

或者

class Foo { 
   @TraceLog
   def bar() {
       println "in bar"
   }
}

这样当我调用 bar() 时,会在打印“in bar”之前执行一些代码(由 TraceLog Aspect 或类似定义)。groovy 有可能吗?

4

1 回答 1

3

您可以通过 AST 转换来做到这一点,如此处所示

但是,应该注意该示例,因为endMessage它只是作为方法中的最后一条语句添加。如果方法有返回值,这很可能是错误的......

于 2014-04-01T13:53:03.980 回答