我必须处理一些旧的遗留代码,不幸的是,它具有在方法开头声明所有变量的编码风格。
代码看起来像这样:
public String doSomething(boolean showStars) {
StringBuilder builder = null;
String result = "";
String prefix = null;
int i;
try {
prefix = "result: ";
if (showStars) {
builder = new StringBuilder();
builder.append(prefix);
for (i = 0; i < 10 ; i++) {
builder.append('*');
}
result += builder.toString();
} else {
builder = new StringBuilder();
builder.append(prefix);
for (i = 0; i < 20; i++) {
builder.append('.');
}
result += builder.toString();
}
} catch (SomeException ignored) {
}
return result;
}
关于如何将代码最容易(自动)转换为类似的内容,是否有最佳实践?
public String doSomething(boolean showStars) {
String result = "";
try {
String prefix = "result: ";
if (showStars) {
StringBuilder builder = new StringBuilder();
builder.append(prefix);
for (int i = 0; i < 10 ; i++) {
builder.append('*');
}
result += builder.toString();
} else {
StringBuilder builder = new StringBuilder();
builder.append(prefix);
for (int i = 0; i < 20; i++) {
builder.append('.');
}
result += builder.toString();
}
} catch (SomeException ignored) {
}
return result;
}
答案 0 :(得分:2)
对于所有这些问题,请确保您有相应的单元测试覆盖率。可以通过所谓的琐碎的重构来引入严重的错误!
至于执行重构的最佳实践,我相信一个不错的IDE可以帮助你。如果删除原始声明,IDE将突出显示未声明的变量,并能够提示并插入合适的声明。只需仔细检查这些插入(最好通过上面的单元测试)