我刚刚在最新的Netbeans中开始了一个新项目,我注意到它已经开始给我这样的代码的代码建议:
if (a == null) x = 0;
else x = 1;
它说
If-Else Statements MUST use Braces
它希望“修复”它:
if (a == null) {
x = 0;
}
else {
x = 1;
}
我根本不想要。我特别关注这一点,它使代码看起来不必要地混乱。我有成千上万行代码不使用(显然不需要)额外的大括号。假设Netbeans做对了,这个要求何时发生,是什么驱使它?
P.S。我知道我可以关掉那些消息。
更新问题:
我写这篇文章的方式可能并不明显,但根据@ corsiKa的评论,我可能会澄清一下。我真的不想讨论花括号是否是理想的。我想知道他们是否已经必要。
编写和制作Netbeans的男孩和女孩通常很好地插入社区,以及Java正在采取什么方向或考虑什么。所以我认为有可能当他们使用咨询机制向我们提醒 java语法将要改变时并且我正在使用的代码实践将在某些时候被弃用
从下面的saber_raider的回答看来答案是否定的。似乎Netbeans的建议被夸大了,因为Mystical建议使用 MUST 这个词。
答案 0 :(得分:11)
那是代码咨询。围绕if/else
括号总是安全的。缺少括号可能会在维护时造成混乱。
答案 1 :(得分:9)
这绝对不是java的语法要求,而只是netbeans的一个特性。 如果您确定自己在做什么,请随意将其关闭......
答案 2 :(得分:4)
毕竟这是一个建议,而不是一个规则。我已经看到很多情况下缺少括号直接影响“可读性”和维护,因为if只包含下一行代码而不是下两行,如下例所示:
if(condition)
doSomething();
condition = false;
condition
始终设置为false并导致错误。
在您说明(变量)的特定情况下,我会使用内联if(x = a == null ? 0 : 1;
)而不是if-else
,但这只是我的观点。
答案 3 :(得分:2)
它并不需要,但它使得阅读它的人更容易理解代码。 它也可以帮助您避免发现错误。