Eclipse - 提取局部变量仅在范围内替换所有出现

我正在使用 Eclipse Neon


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


 myObj.getStatus()

例如


if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {

}

myObj.changeMe();

if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {

}

myObj.changeMe2();

...

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


我只有2个选择


提取局部变量并检查仅在范围(方法)中替换所有出现的情况,这不好(因为getStatus()不是有效的最终结果)


提取局部变量并手动替换每个相关myObj.getStatus()调用


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


这是最有效的选择吗?或者我可以只在 eclipse 中的特定上下文/选定文本中替换吗?如果不是,这可以被认为是对 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();

...


互换的青春
浏览 255回答 1
1回答

慕桂英3389331

还有第三种选择:确保选中“用对局部变量的引用替换所有出现的选定表达式”复选框单击预览 >取消选中的复选框,其中表达不应该被更换(在你的情况下,最后两个)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java