メソッド参照を検索して呼び出すGroovyクラスがあります。呼び出されるメソッドはプライベートメソッドです。実際のクラスが子クラスのインスタンスである場合、実際にそれを呼び出すのは親のパブリックメソッドであるにもかかわらず、プライベートメソッドが見つからないというエラーをスローします。
この場合、私は明らかにpMethod2()
直接呼び出すことができ、それは機能しますが、これが書かれたとおりに機能しない理由と、それを修正して機能する方法があるかどうかを理解しようとしています。
class Parent {
def pMethod1() {
def m = this.&pMethod2
m() // this call fails if the calling class is of type Child
}
private def pMethod2() {}
public static void main(String[] args) {
new Child().pMethod1();
}
}
class Child extends Parent {}