【问题标题】:Java Lambda method reference not workingJava Lambda 方法参考不起作用
【发布时间】:2015-11-26 12:20:53
【问题描述】:

我原来的代码是这样的:

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    改变

    setOnMouseClicked(event -> SomeClass::onClicked);
    

    到

    setOnMouseClicked(SomeClass::onClicked);
    

    【讨论】:

    • @Mayron FIY,IntelliJ 可以为您更改带有方法参考的 lambda 表达式(如果可能的话)。只需在表达式上使用 alt+enter 快捷键
    • @Prim 谢谢,刚刚试了一下。了解非常有用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多