我的原代码是这样的:
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 不是函数式接口(interface)”,但我不想返回任何东西。我只想让处理程序执行。我该如何解决这个问题?
谢谢!
最佳答案
您将 lambda 表达式与方法引用混合在一起。
改变
setOnMouseClicked(event -> SomeClass::onClicked);
到
setOnMouseClicked(SomeClass::onClicked);
关于Java Lambda 方法引用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33938594/