質問: checkstyleの機能で RegexpMultilineというモジュールがあり デフォルトの規約ではSystem.out.printlnでエラーが出るように設定されているようです 解説では 一般的に悪い習慣のコード、ex.printStacktrace(),System.out.println(), System.exit() となっていたのですが、これらがどうして 悪い習慣のコードとして出ていたのかが分かりません
回答: 悪い習慣というよりは、改行の扱いとして問題が発生する可能性を示唆しているのではないかと思います。 システムが自動で改行を付与するようなメソッド(printStacktrace()、println()等)は JVMの実行環境によって、付与(出力)される改行コードが違います。 * Windows:CR+LF * Linux:LF そういった差異が出るといった意味でのチェックをしてほしいのではないでしょうか? あと、exit()もチェックエラーの対象になっていたのでしょうか? 下記のページでは特にそういった記載が見られなかったので。 http://checkstyle.sourceforge.net/config_regexp.html#RegexpMultiline