【发布时间】: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 intellij-idea 为我进行重构。
这听起来如此微不足道和有用,以至于我很难相信这样的功能还不存在。我只是看起来不够努力,还是必须创建功能请求?
请注意,我通常使用Exceptions 进行错误处理,并且为了简洁起见选择了给定的示例。
【问题讨论】:
-
你不能只选择 lambda 的主体,然后提取到方法(Ctrl-Alt-m)吗?我很确定我今天早些时候就是这样做的。
-
@AndyTurner 是的,你可以。好吧,我没有理由不考虑这一点。你能写一个简短的答案,让我接受它并悄悄地埋葬这个问题吗?
标签: intellij-idea java intellij-idea java-8