在Groovy中,我有一个父类和一个子类,其中父类的构造函数尝试使用闭包设置父类的字段值,如下面的代码所示:
try {
def x = new ChildClass()
} catch (ex) {
ex.printStackTrace(System.err)
}
class ParentClass {
private values = []
ParentClass(columnCount) {
columnCount.times { values.add('') }
}
}
class ChildClass extends ParentClass {
ChildClass() {
super(20)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我得到一个groovy.lang.MissingPropertyException,并显示消息"No such property:values for class:ChildClass".但是,如果我将父类的构造函数更改为不使用带有times方法的闭包,如下例所示:
try {
def x = new ChildClass()
} catch (ex) {
ex.printStackTrace(System.err)
}
class ParentClass {
private values = []
ParentClass(columnCount) {
def i
for (i = 0; i < columnCount; i++) {
values.add('')
}
} …Run Code Online (Sandbox Code Playgroud) groovy ×1