9

我刚刚在最新的 Netbeans 中启动了一个新项目,我注意到它已经开始为我提供如下代码的代码建议:

    if (a == null) x = 0;
    else x = 1;

它说

If-Else Statements MUST use Braces

它想“修复”它:

    if (a == null) {
        x = 0;
    }
    else {
        x = 1;
    }

我根本不想要。我对此很特别,它使代码看起来不必要的混乱。我有成千上万行代码不使用(而且显然不需要)额外的大括号。假设 Netbeans 是正确的,那么这个要求是什么时候发生的,是什么推动了它?

PS我知道我可以关闭这些消息。

更新问题:

我写这篇文章的方式可能并不明显,但根据@corsiKa 下面的评论,也许我应该澄清一下。我真的不想讨论花括号是否可取。我想知道它们是否变得必要

编写和制作 Netbeans 的男孩和女孩通常都很好地融入了社区以及 Java 正在采取什么方向或正在考虑什么。所以我认为,当他们使用咨询机制来提醒我们Java 语法将会改变并且我使用的代码实践将在某个时候被弃用时,这是可能的。

从下面 saber_raider 的回答看来,答案是否定的。正如 Mystical 所建议的那样,Netbeans 的建议似乎夸大了MUST这个词。

4

4 回答 4

11

那是代码咨询。戴上牙套总是安全的if/else。缺少大括号可能会在维护时造成混乱。

于 2012-09-13T15:55:51.057 回答
9

这绝对不是 java 的语法要求,而只是 netbeans 的一个特性。如果您确定自己在做什么,请随时将其关闭...

于 2012-09-13T15:58:04.307 回答
4

毕竟这是一个建议,而不是规则。我见过很多情况,其中缺少括号会直接影响“可读性”和维护性,因为 if 仅包装下一行代码而不是接下来的两行,如下例所示:

if(condition)
    doSomething();
    condition = false;

condition始终设置为 false 并导致错误。

在您声明的特定情况下(变量),我会使用内联 if ( x = a == null ? 0 : 1;) 而不是if-else,但这只是我的意见。

于 2012-09-13T16:02:22.597 回答
2

它不需要,但它使阅读它的人更容易理解代码。它还可以使您免于难以找到错误。

于 2012-09-13T15:57:16.437 回答