Checkstyle Javaルール

CheckstyleのJavaルールについて1つずつまとめます

AnnotationOnSameLine

CheckStyle公式ドキュメント

検証環境

Checkstyleバージョン:10.3.3
Javaバージョン:17


チェック概要

チェック追加バージョン
Checkstyle 8.2

アノテーションと対象要素が同じ行にあることをチェックする。

プロパティ

プロパティ デフォルト値 説明 追加
バージョン
tokens トークンの サブセット CLASS_DEF,
INTERFACE_DEF,
ENUM_DEF,
METHOD_DEF,
CTOR_DEF,
VARIABLE_DEF,
RECORD_DEF,
COMPACT_CTOR_DEF
チェック対象のトーク 8.2

トークンのサブセットには以下の値が設定可能

説明
ANNOTATION_DEF アノテーション宣言
ANNOTATION_FIELD_DEF アノテーションフィールドの宣言
CLASS_DEF クラス宣言
COMPACT_CTOR_DEF 引数なしコンストラクタ宣言
CTOR_DEF コンストラクター宣言
DOT .
ENUM_DEF enum宣言
IMPLEMENTS_CLAUSE implements
INTERFACE_DEF インターフェイス宣言
LITERAL_NEW new
LITERAL_THROWS throws
METHOD_DEF メソッド宣言
PARAMETER_DEF パラメータ宣言
RECORD_DEF レコード宣言
TYPECAST 型キャスト
TYPE_ARGUMENT 型参照またはメソッド/コンストラクタ呼び出しの型パラメータ
VARIABLE_DEF フィールドまたはローカル変数の宣言

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AnnotationOnSameLine"/>
    </module>
</module>

チェック実行例

public class MyClass {
    // OK
    @Deprecated public void bar() {
    }

    // OK
    @Before @Override public void bar() {
    }

    // NG アノテーションは対象要素と同行に記述する
    @Override
    public void bar() {
    }

    // NG アノテーションは対象要素と同行に記述する
    @SuppressWarnings("deprecation")
    @Before public void bar() {
    }
}

プロパティ設定あり

tokens

チェック対象のトークンをコンマ区切りで記述する。

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name = "AnnotationOnSameLine">
            <property name = "tokens" value = "CLASS_DEF" />
        </module>
    </module>
</module>

チェック実行例

public class MyClass {
    // OK メソッド宣言はチェック対象外
    @Deprecated public void bar() {
    }

    // OK メソッド宣言はチェック対象外
    @Before @Override public void bar() {
    }

    // OK メソッド宣言はチェック対象外
    @Override
    public void bar() {
    }

    // OK メソッド宣言はチェック対象外
    @SuppressWarnings("deprecation")
    @Before public void bar() {
    }
}