Eclipse - 提取局部变量仅替换范围内的所有事件

Eclipse - Extract local variable replace all occurrences only in scope

我正在使用 Eclipse Neon

我在超大方法中有一个重复的方法调用:

 myObj.getStatus()

例如

if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...

调用之间可以在内部更新状态

我只有两个选择

我终于提取了一个方法,然后提取了局部变量并检查了替换所有出现的地方

这是最有效的选项吗?或者我可以只替换 eclipse 中特定的 context/selected 文本吗?如果不是,这可以被认为是对 eclipse 重构的增强吗?

编辑

我希望重构到最近的封闭块,类似于 JavaScript 的 let

实际上代码不在同一级别,但是eclipse替换了方法中所有出现的地方

if (myState.equals(STATE_ONE){
  if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
  }
  myObj.changeMe();
}
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...

还有第三种选择:

  1. 确保选中复选框用对局部变量的引用替换所有出现的所选表达式
  2. 点击预览>
  3. 取消选中 不应替换 表达式的复选框(在您的情况下,最后两个)