Java Lambda 方法参考无效

Java Lambda method reference not working

我原来的代码是这样的:

private static void onClicked(MouseEvent event) {
    // code to execute
}

// somewhere else in the program:
setOnMouseClicked(event -> SomeClass.onClicked(event));

但是 IntelliJ 说 "Can be replaced with method reference" 我不太确定该怎么做。我以为我会这样做:

setOnMouseClicked(event -> SomeClass::onClicked);

但是这告诉我 "void is not a functional interface",但我不想 return 任何事情。我只想让处理程序执行。我该如何解决这个问题?

谢谢!

您将 lambda 表达式与方法引用混合在一起。

改变

setOnMouseClicked(event -> SomeClass::onClicked);

setOnMouseClicked(SomeClass::onClicked);