Есть ли возможность рефакторинга "блок лямбда в отдельный метод"? - PullRequest
0 голосов
/ 30 мая 2018

Я часто использую лямбды, но иногда они имеют тенденцию расти со временем.Начиная с ...

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

.. Я часто сталкиваюсь с чем-то вроде:

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

Я не думаю, что блочные лямбды создают элегантный код, поэтому я обычно реорганизую егона это:

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

Наряду с методом:

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

Копирование кода в моем файле и приведение в порядок всех забытых скобок и точек с запятой довольно громоздко, и я бы с удовольствиемпусть моя IDE проведет для меня рефакторинг.

Это звучит так тривиально и полезно, что мне трудно поверить, что такой функции еще не существует.Разве я не выглядел достаточно усердно или мне нужно создать запрос функции?


Обратите внимание, что обычно я использую Exception s для обработки ошибок, и данный пример был выбран для краткости.

1 Ответ

0 голосов
/ 30 мая 2018

Выберите тело лямбды, а затем нажмите Ctrl + Alt + M , чтобы извлечь его из метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...