代码之家  ›  专栏  ›  技术社区  ›  Neuron MonoThreaded

是否有重构“block lambda to separate method”功能?

  •  2
  • Neuron MonoThreaded  · 技术社区  · 8 年前

    我经常用羊肉,但有时它们会随着时间的推移而生长。开始于…

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

    …我经常以这样的方式结束:

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

    我认为block lambdas不适合优雅的代码,所以我通常将其重构为:

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

    以及方法:

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

    在我的文件中复制代码并整理所有被遗忘的括号和分号是相当麻烦的,我希望有我的ide 为我做重构。

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


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

    1 回复  |  直到 8 年前
        1
  •  4
  •   Neuron MonoThreaded    8 年前

    选择lambda的主体,然后按 Ctrl键 + 中高音 + 把它提取成一种方法。