Java Lambda 方法引用不起作用

标签 java intellij-idea lambda java-8 method-reference

我的原代码是这样的:

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/

相关文章:

java - 如何区分正在运行的java程序

java - IntelliJ IDEA 快速修复自定义

python - 舍入 lambda 函数

java - 经典操作枚举示例中的 Lambda

c++ - 构造函数中使用lambda的C++类

java - 在 JavaFX 中将 double 绑定(bind)转换为 double 值

java - 带有 @BeforeClass 的 TestNG 数据提供者

java - Intellij IDEA 14远程调试忽略断点

java - 将文本文件每行的第一个单词读入 ArrayList

android - 如何将 apklib 导入到 Android Studio 或 IntelliJ 项目中?