[解決済み] [Solved] 特定の行のコードに対して特定のCheckstyleルールを無効にしますか?
質問
私は チェックスタイル この検証ルールは、3つ以上の入力パラメータを持つクラスメソッドを定義することを禁止するもので、私のプロジェクトで設定されています。このルールは 私の しかし、このルールに従わないサードパーティのクラスを拡張しなければならないことがあります。
Checkstyleに、あるメソッドを黙って無視するように指示することはできますか?
ちなみに、結局Checkstyleのラッパーを自作しました。 qulice.com (参照 Javaコード品質の厳格な管理 )
解決するには?
supressionCommentFilterの使い方は、以下のサイトで確認してください。 http://checkstyle.sourceforge.net/config_filters.html#SuppressionCommentFilter . このモジュールを checkstyle.xml に追加する必要があります。
<module name="SuppressionCommentFilter"/>
と設定可能です。 したがって、コードにコメントを追加して checkstyle を (さまざまなレベルで) オフにし、コード内のコメントの使用によって再びオンにすることができます。 例
//CHECKSTYLE:OFF
public void someMethod(String arg1, String arg2, String arg3, String arg4) {
//CHECKSTYLE:ON
あるいは、もっと手を加えたこのバージョンを使うのもよいでしょう。
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
で、特定のコード行のチェックをオフにすることができます。
//CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
catch (Exception e)
//CHECKSTYLE.ON: IllegalCatch
*注意: また、このページには
FileContentsHolder
:
<module name="FileContentsHolder"/>
こちらもご覧ください
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
の下に
SuppressionFilter
セクションで、パターンマッチリソースのチェックを個別にオフにすることができます。
そこで、checkstyle.xmlにある場合。
<module name="ParameterNumber">
<property name="id" value="maxParameterNumber"/>
<property name="max" value="3"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
で抑制のxmlファイルでオフにすることができます。
<suppress id="maxParameterNumber" files="YourCode.java"/>
Checkstyle 5.7 で利用できるようになったもう一つの方法は、違反行為を
@SuppressWarnings
javaアノテーションを使用します。 これを行うには、2つの新しいモジュール(
SuppressWarningsFilter
と
SuppressWarningsHolder
) を設定ファイルに追加してください。
<module name="Checker">
...
<module name="SuppressWarningsFilter" />
<module name="TreeWalker">
...
<module name="SuppressWarningsHolder" />
</module>
</module>
そして、コード内で次のようにします。
@SuppressWarnings("checkstyle:methodlength")
public void someLongMethod() throws Exception {
または、多重抑制の場合。
@SuppressWarnings({"checkstyle:executablestatementcount", "checkstyle:methodlength"})
public void someLongMethod() throws Exception {
NB:
の"です。
checkstyle:
という接頭辞は任意です(ただし推奨)。ドキュメントによると、パラメータ名はすべて小文字でなければならないようですが、実際にはどのようなケースでも動作するようです。
関連
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] Javadocのコメントで複数行のコード例
-
[解決済み] Eclipseです。自動組版の最大行長を設定しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] init-paramとcontext-param
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません