是否有一个重构"阻止lambda来分离方法"特征?

时间:2018-05-29 23:06:28

标签: java intellij-idea java-8

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

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

..我常常得到类似的东西:

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

我不认为阻止lambdas是优雅的代码,所以我通常会将其重构为:

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

与方法一起:

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

在我的文件中复制代码并整理掉所有遗忘的括号和分号是非常麻烦的,我很乐意让我的IDE 为我做重构。

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

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

1 个答案:

答案 0 :(得分:4)

选择lambda的主体,然后按 Ctrl + Alt + M 将其解压缩到方法。