私の元のコードはこれです:
private static void onClicked(MouseEvent event) {
// code to execute
}
// somewhere else in the program:
setOnMouseClicked(event -> SomeClass.onClicked(event));
しかし、IntelliJは「メソッド参照に置き換えることができる」と言っていますが、その方法がよくわかりません。私はこれをやろうと思った:
setOnMouseClicked(event -> SomeClass::onClicked);
しかし、それは「voidは関数型インターフェースではない」と私に伝えますが、私は何も返したくありません。ハンドラーを実行したいだけです。どうすればこれを修正できますか?
ありがとうございました!
ラムダ式をメソッド参照と混合しています。
変化する
setOnMouseClicked(event -> SomeClass::onClicked);
に
setOnMouseClicked(SomeClass::onClicked);