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();
...
调用之间可以在内部更新状态
我只有两个选择
提取局部变量并检查 Replace all occurrences only in scope (method) 这是不好的(因为 getStatus()
不是有效的最终)
提取局部变量并手动替换每个相关的 myObj.getStatus()
调用
我终于提取了一个方法,然后提取了局部变量并检查了替换所有出现的地方
这是最有效的选项吗?或者我可以只替换 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();
...
还有第三种选择:
- 确保选中复选框用对局部变量的引用替换所有出现的所选表达式
- 点击预览>
- 取消选中 不应替换 表达式的复选框(在您的情况下,最后两个)
我正在使用 Eclipse Neon
我在超大方法中有一个重复的方法调用:
myObj.getStatus()
例如
if (myObj.getStatus() == ONE || myObj.getStatus() == TWO ) {
}
myObj.changeMe();
if (myObj.getStatus() == THREE || myObj.getStatus() == FOUR) {
}
myObj.changeMe2();
...
调用之间可以在内部更新状态
我只有两个选择
提取局部变量并检查 Replace all occurrences only in scope (method) 这是不好的(因为
getStatus()
不是有效的最终)提取局部变量并手动替换每个相关的
myObj.getStatus()
调用
我终于提取了一个方法,然后提取了局部变量并检查了替换所有出现的地方
这是最有效的选项吗?或者我可以只替换 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();
...
还有第三种选择:
- 确保选中复选框用对局部变量的引用替换所有出现的所选表达式
- 点击预览>
- 取消选中 不应替换 表达式的复选框(在您的情况下,最后两个)