小编awy*_*att的帖子

Groovy父/子私有字段访问奇怪与关闭

在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

5
推荐指数
1
解决办法
1993
查看次数

标签 统计

groovy ×1