次のグルーヴィーなクラスのようなものがあります:
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 メソッドは失敗するようです。各クロージャーでは、フィールドではなく、バー プロパティがアクセサーを通じて使用されているようです。だから不変です。
問題は、「クロージャー内でフィールド (アクセサーではなく) を使用するにはどうすればよいですか?
ありがとう。