我有一个很棒的超类,如下所示:
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”保留为私有,那么执行此操作的适当方法是什么?
这是一个带有私有访问修饰符的老错误。如果你定义了 str protected ,它就会起作用。https://issues.apache.org/jira/browse/GROOVY-2433
编辑:你能避免关闭,而是使用 for 循环吗?不太酷,但有效:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)