我有类似下面的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属性都是使用通过访问器而不是字段。所以这是不可改变的。
问题是“如何在闭包内使用字段(不是访问者)?
感谢。
答案 0 :(得分:1)
您可以使用属性访问者运算符@
,如下所示:
this.@bar[ it ] = it