如何从Groovy中的闭包使用字段而不是访问器

时间:2013-09-26 19:27:21

标签: groovy closures field accessor

我有类似下面的groovy类:

class Foo {
   private Map<String,String> bar = [:]

   Map<String, String> getBar() {
       return bar.asImmutable()
   }

   def doSomething(List<String> argValues){
     argValues.each {
        bar[it] = it
     }
   }
}

doSomething方法似乎会失败,看起来,在每个闭包中,bar属性都是使用通过访问器而不是字段。所以这是不可改变的。

问题是“如何在闭包内使用字段(不是访问者)?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用属性访问者运算符@,如下所示:

this.@bar[ it ] = it