原始Java代码:
public int test() {
int total = 100;
if (new Random().nextInt(2) < 1) {
total += 1;
} else {
total -= 2;
}
return total;
}
重构后的预期代码:
public int test() {
return 100 + randomChange();
}
private int randomChange() {
return new Random().nextInt(2) < 1 ? 1 : -2;
}
我可以手动更改代码,但我想回复 IDE 的重构工具(例如 IDEA 或 eclipse)。不幸的是,我找不到办法做到这一点。
是否可以通过工具来重构代码而不需要手动破坏它?
最佳答案
突出显示这一点:
if (new Random().nextInt(2) < 1) {
total += 1;
} else {
total -= 2;
}
提取方法:并使用提取方法 (ALT+SHIFT+M 对于 Eclipse,CTRL+ALT+M 对于 Intellij iirc,但请仔细检查!)。您仍然需要进行一些手动重构,因为默认情况下,您将需要传递“total”作为参数并返回更改后的值。
If/else -> 三元:有种方法可以将 if/else 语句更改为三元运算符,但它们不是由 IDE 提供,而是由第三方插件提供例如对于 Eclipse,这应该是 help .
Local var -> return statements: 至于“total”变量,我不知道有任何插件可以做到这一点,并且 Eclipse/Intellij 没有这样的选项(至少我不知道其中之一)。他们可以通过提取局部变量以相反的方式来完成此操作。
@Downvoter:这是使用当前重构工具可以获得的最接近的结果。正如评论部分提到的,没有神奇的“读我的想法”按钮。
关于java - 如何使用重构工具安全地重构代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474550/