CheckStyleを使用してスタイル標準を適用しています。含めることを選択したスタイル ルールの 1 つは、NeedBracesモジュールでした。
NeedBracesは、すべてのブロック型ステートメント (if
、else
、for
) に左中括弧と右中括弧が必要であることを指定します。ただし、私が知る限り、完全に正しく機能しているわけではありません。
この例では、CheckStyle エラーが発生します。
if (true)
{
System.out.println("20");
}
else
System.out.println("30");
else ケースには中括弧がないためです。ただし、次の例では CheckStyle エラーをトリガーできません。
if (true)
{
System.out.println("20");
}
else
if (true)
{
System.out.println("30");
}
これは、else の場合に中かっこがないために失敗するはずでしたが、checkstyle はそれを通過させます。ドキュメントを再確認した後、これが正しく機能しない理由が見つかりません。
それで... CheckStyleモジュール「NeedBraces」はネストされたif/elseブロックで動作しますか? 何か案は?
この質問に対する答えは、別の質問です。上記の望ましくないコードに違反としてフラグを立てる規則はありますか?