【问题标题】:Is there a refactor "block lambda to separate method" feature?是否有重构“块 lambda 以分离方法”功能?
【发布时间】:2018-05-29 23:06:27
【问题描述】:

我经常使用 lambda,但有时它们会随着时间的推移而增长。从...开始

someMenuItem.setOnAction(event -> doStuff());

.. 我经常会得到类似的结果:

someMenuItem.setOnAction(event -> {
    if (!doStuff()) {
        displayError("Couldn't do stuff.");
    }
});

我不认为块 lambda 可以写出优雅的代码,所以我通常将其重构为:

someMenuItem.setOnAction(event -> userPerformsDoStuff());

连同方法:

public void userPerformsDoStuff() {
    if (!doStuff()) {
        displayError("Couldn't do stuff.");
    }
}

在我的文件中复制代码并整理所有忘记的括号和分号非常麻烦,我希望我的 IDE 为我进行重构。

这听起来如此微不足道和有用,以至于我很难相信这样的功能还不存在。我只是看起来不够努力,还是必须创建功能请求?


请注意,我通常使用Exceptions 进行错误处理,并且为了简洁起见选择了给定的示例。

【问题讨论】:

  • 你不能只选择 lambda 的主体,然后提取到方法(Ctrl-Alt-m)吗?我很确定我今天早些时候就是这样做的。
  • @AndyTurner 是的,你可以。好吧,我没有理由不考虑这一点。你能写一个简短的答案,让我接受它并悄悄地埋葬这个问题吗?

标签: intellij-idea java intellij-idea java-8


【解决方案1】:

选择 lambda 的主体,然后按 Ctrl + Alt + M 将其提取到方法中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2023-04-09
    • 1970-01-01
    • 2010-12-24
    • 2019-08-15
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多