メソッドをパラメーターとして別のクラスのメソッドに渡そうとしています。メソッドは最初のクラスで定義され、他のクラスのメソッドは静的です。それを見ると、理解が容易になります。
設定
public class MyClass extends ParentClass {
public MyClass() {
super(new ClickHandler() {
public void onClick(ClickEvent event) {
try {
OtherClass.responseMethod(MyClass.class.getMethod("myMethod",Boolean.class));
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void myMethod(Boolean success) {
if(success.booleanValue()) {
//do stuff
}
}
}
ただし、ビルドしようとすると、次のエラーが発生します。
エラー
The method getMethod(String, Class<boolean>) is undefined for the type Class<MyClass>
問題はmyMethod
、それが見つからないことではなく、見つからないことでClass<MyClass>.getMethod
あり、その理由はわかりません。
アップデート
コードのこの部分を作り直し、「getMethod or
getDeclaredMethod」を使用していません。npe は、私が行っていたことにいくつかの問題を発見し、さらにその答えを見つけるために多くの努力を払ったので、その答えを受け入れます。