Java Lambda 方法引用不起作用

我的原始代码是这样的:

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不是一个功能接口”,但我不想返回任何东西。我只想执行处理程序。我该如何解决这个问题?

谢谢!


答案 1

您正在将 lambda 表达式与方法引用混合使用。

改变

setOnMouseClicked(event -> SomeClass::onClicked);

setOnMouseClicked(SomeClass::onClicked);

答案 2

推荐