在Android Eclipse中编辑代码 - 如何最好地记录/折叠结束}

时间:2011-10-13 07:10:17

标签: java android eclipse

我刚刚意识到在Eclipse中不能像{}那样崩溃代码块。唯一可以崩溃的是methods完全。

现在,如果方法不再适合一个屏幕,有时很难找到closing }的对应部分。

我知道Eclipse中的“Expand Selection To”,但是如果只想隐藏一个块以便其他人正在处理,那么这不是最佳选择。

例如在这样的代码中:(编辑:我用Eclipse Format-command格式化了示例代码,所以它至少看起来不错)

private void myMethod(String msg) {
    Boolean a = true;
    Integer b = 1;
    Integer justSomeCode = 1;

    if (a) {
        switch (b) {
        case 1: {
            try {
                justSomeCode += justSomeCode;
            } catch (Exception e) {
                justSomeCode += justSomeCode;
            }

        }
            break;

        case 2: {
            try {
                justSomeCode += justSomeCode;
            } catch (Exception e) {
                justSomeCode += justSomeCode;

            }

        }
            break;
        }

        justSomeCode += justSomeCode;
    }

    else {
        justSomeCode += justSomeCode;
    }

}

3 个答案:

答案 0 :(得分:1)

如果在某些代码中找不到匹配的右括号,则时间来重构代码。第一个猜测是“提取方法”来提取形成逻辑单元的代码块。

此外,我不知道它是否只是在这个页面上,但你的大括号遍布在示例代码的页面上,甚至都没有符合标准。这使得即使在短代码中也能更难找到匹配的括号。

通过删除大量代码块来改变代码的可读性的一种方法是:

替换

if (someCommonlyTrueCondition) {
  // many lines of code
} else {
  // handling the uncommon case: probably logging followed by a return or throwing an exception
}

到此:

if (!someCommonlyTrueCondition) {
  // handling the uncommon case: probably logging followed by a return or throwing an exception
}
// many lines of code

不会显着减少代码行,但它 减少了“主”代码块的缩进确保实际处理非常见条件(可能是错误,可能不是)接近定义实际条件的表达式。

摘要:我不知道“记录”关闭括号的好方法。我认为最佳方法是以不需要记录代码的方式构建代码,因为它们的存在理由在代码中清晰可见。

答案 1 :(得分:1)

这就是我关注的内容

private void method1() {

    if (condition) {
        switch (...) {  
        case a: {
            try {
                ...
            } catch (Exception e) {
                ...;
               }

                        } /* case a */
            break; 

        case b: {
            try {
                ...
            } catch (Exception e) {
                ...;
               }

                        } /* case b */
            break;
                }  /* switch */

    ....
    }  
} else {    /* if (condition1) */
        ...
}  /* else */

} /* method1 */

已经说过,拥有多种方法总是比较好,而不是用同样的方法做所有事情。

答案 2 :(得分:0)

建议您提取大块并使其成为私有方法。它会使代码看起来更干净。 我知道这不能回答你的问题。只是一条建议和良好的编程实践。