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 は次の 2 行ではなく、次のコード行をラップするだけであるため、括弧の欠如が「読みやすさ」とメンテナンスに直接影響を与える多くのケースを見てきました。

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 に答える