我刚刚意识到在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;
}
}
答案 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)
建议您提取大块并使其成为私有方法。它会使代码看起来更干净。 我知道这不能回答你的问题。只是一条建议和良好的编程实践。