Я использую Eclipse Neon
У меня есть повторяющиеся вызовы метода в методе с завышенным размером:
myObj.getStatus()
* 1006 Е.Г. *
if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...
где статус может быть обновлен внутри между вызовами
У меня есть только 2 варианта
Извлечь локальную переменную и установить флажок Заменить все вхождения только в области (методе), что не годится (поскольку getStatus()
не является окончательным)
Извлечение локальной переменной и замена вручную каждого соответствующего myObj.getStatus()
вызова
Я наконец извлекаю метод, затем извлекаю локальную переменную и проверяю Заменить все вхождения
Это самый правильный вариант? или я могу заменить только в определенном контексте / выделенный текст в затмении? если нет, то можно ли это рассматривать как улучшение рефакторинга затмения?
EDIT
Я надеялся на рефакторинг к ближайшему включающему блоку, похожему на JavaScript let
На самом деле код не на том же уровне, но затмение заменяет все вхождения в методе
if (myState.equals(STATE_ONE){
if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
}
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...