次のコード セグメントで、コンパイラが map 属性についてはエラーを出すが、他のタイプの属性についてはエラーを出さないのはなぜですか。
import groovy.transform.CompileStatic
@CompileStatic
class TestMapInClosure {
Map amap = [:]
List alist = []
Integer intval = 0
Closure doFoo = {
this.amap['one'] = 'two' // !! [Static type checking] - No such property
this.alist.push(1)
this.intval += 5
}
}
this
私が物事を正しく理解していれば、クロージャーの内部は、それを囲むクラスのインスタンスを参照することになっています。
注: Groovy バージョン: 2.4.5