我有一个groovy超类,看起来像:
class AGroovyClass {
private String str = "hello"
void printString(int nTimes) {
nTimes.times { println str }
}
}
和子类
class AGroovySubclass extends AGroovyClass {
// some other subclass methods
}
我的客户端代码调用:
new AGroovySubclass().printString(5)
这实际上是因为它说AGroovySubclass没有这样的属性“str”
我原本以为printString方法在AGroovyClass中,它应该没有问题访问“str”属性,但显然我是不正确的。如果我想保持“str”私密性,那么这项工作的适当方法是什么?
答案 0 :(得分:5)
这是一个私有访问修饰符的旧bug。如果你定义str protected,它可以工作。 http://jira.codehaus.org/browse/GROOVY-2433
编辑:你能避免关闭,改为使用for循环吗?不太酷,但有效:)