I'm using Eclipse Neon
I have a repeating method calls in a over sized method:
myObj.getStatus()
E.g.
if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...
where status can be updated internally between calls
I have only 2 options
Extract local variable and check the Replace all occurrences only in scope (method) which isn't good (because
getStatus()isn't effectively final)Extract local variable and replace manually each relevant
myObj.getStatus()call
I finally Extract a method and then Extract local variable and check the Replace all occurrences
Is this the most valid option? or can I replace only in specific context/selected text in eclipse? if not can this be consider as enhancement for eclipse refactoring?
EDIT
I was hoping for refactor to the nearest enclosing block similar to JavaScript's let
Actually the code is not in same level, yet eclipse replace all occurrences in method
if (myState.equals(STATE_ONE){
if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
}
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...