您可以调用私有方法的事实是Groovy语言中的错误,而不是功能。但是,我相信在对闭包的行为方式进行一些更改时,故意引入此错误是一种折衷形式。
即使可以调用私有方法,也不应这样做,因为希望有一天这一错误将得到修复,并且如果您的程序依赖于调用私有方法,它将被破坏。
如果您确实坚持(ab)使用这种未记录的行为,则可以尝试使用ReflectionUtils之类的方法在父类中调用私有方法。
另一个解决方法是在具体类中提供一个方法,该方法在父类中调用私有方法。例如,以下代码“有效”,但它仍然依赖于访问私有成员,这很糟糕
class Parent { private foo() {println "foo"}}class Child extends Parent { public bar() {super.foo()}}new Child().bar()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)