有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

重构具有错误变量范围的遗留java代码

我必须处理一些旧的遗留代码,不幸的是,这些代码具有在方法开始时声明所有变量的编码风格

例如,代码如下所示:

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;
}

共 (1) 个答案

  1. # 1 楼答案

    对于所有这些问题,请确保您在整个测试中都有单元测试覆盖范围。严重的bug可以通过所谓的琐碎的重构引入

    至于执行重构的最佳实践,我相信一个像样的IDE可以帮助您。如果删除原始声明,IDE将突出显示未声明的变量,并能够提示和插入合适的声明。只需仔细检查这些插入(最好通过上面的单元测试)