0
@FXML private void handleLeftButton() throws Throwable{

MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodType methodType = MethodType.methodType(void.class, ListIterator.class, Text.class);
MethodHandle leftButtonClickMethod = lookup.findVirtual(HomePresenter.class, "leftButtonClick", methodType);

leftButtonClickMethod.invoke(list, menuTitle);

}

なぜこのエラーが発生するのですか?

java.lang.invoke.WrongMethodTypeException: MethodHandle(HomePresenter,ListIterator,Text)void を (ListIterator,Text)void に変換できません

4

1 に答える 1

0

MethodHandle の例を見ると、メソッドを呼び出したいインスタンスを最初の引数として渡す必要があると思います

leftButtonClickMethod.invoke(this,list, menuTitle);

しかし、私は java.lang.invoke を使用したことがないため、これは完全に間違っている可能性があります。

于 2014-11-21T08:22:00.340 に答える