Checkstyle Javaルール

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

ConstantName

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

定数名が指定された正規表現に適合しているかどうかをチェックする。

定数とは、serialVersionUIDとserialPersistentFieldsを除く、static finalなフィールド、またはインターフェース/アノテーションのフィールドのことを指す。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$" 定数名の正規表現 3.0
applyToPublic boolean true publicメンバにチェックを適用するかどうか 5.0
applyToProtected boolean true protectedメンバにチェックを適用するかどうか 5.0
applyToPackage boolean true package-privateメンバにチェックを適用するかどうか 5.0
applyToPrivate boolean true privateメンバにチェックを適用するかどうか 5.0

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // OK
    public final static int FIRST_CONSTANT1 = 10;
    // OK
    protected final static int SECOND_CONSTANT2 = 100;
    // NG 定数名の正規表現にマッチしない
    final static int third_Constant3 = 1000;
    // NG 定数名の正規表現にマッチしない
    private final static int fourth_Const4 = 50;
}

プロパティ設定あり

format

定数名の正規表現

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ConstantName">
            <property name="format" value="^[A-Z][A-Z]*(_[A-Z]+)*$"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // NG 定数名の正規表現にマッチしない
    public final static int FIRST_CONSTANT1 = 10;
    // NG 定数名の正規表現にマッチしない
    protected final static int SECOND_CONSTANT2 = 100;
    // NG 定数名の正規表現にマッチしない
    final static int third_Constant3 = 1000;
    // NG 定数名の正規表現にマッチしない
    private final static int fourth_Const4 = 50;
}

applyToPublic

publicメンバにチェックを適用するかどうか
デフォルト:true

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ConstantName">
            <property name="applyToPublic" value="false"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // OK 「applyToPublic=true」なのでチェック対象外
    public final static int FIRST_Constant1 = 10;
    // NG 定数名の正規表現にマッチしない
    protected final static int SECOND_Constant2 = 100;
    // NG 定数名の正規表現にマッチしない
    final static int third_Constant3 = 1000;
    // NG 定数名の正規表現にマッチしない
    private final static int fourth_Const4 = 50;
}

applyToProtected

protectedメンバにチェックを適用するかどうか
デフォルト:true

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ConstantName">
            <property name="applyToProtected" value="false"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // NG 定数名の正規表現にマッチしない
    public final static int FIRST_Constant1 = 10;
    // OK 「applyToProtected=true」なのでチェック対象外
    protected final static int SECOND_Constant2 = 100;
    // NG 定数名の正規表現にマッチしない
    final static int third_Constant3 = 1000;
    // NG 定数名の正規表現にマッチしない
    private final static int fourth_Const4 = 50;
}

applyToPackage

package privateメンバにチェックを適用するかどうか
デフォルト:true

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ConstantName">
            <property name="applyToPackage" value="false"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // NG 定数名の正規表現にマッチしない
    public final static int FIRST_Constant1 = 10;
    // NG 定数名の正規表現にマッチしない
    protected final static int SECOND_Constant2 = 100;
    // OK 「applyToPackage=true」なのでチェック対象外
    final static int third_Constant3 = 1000;
    // NG 定数名の正規表現にマッチしない
    private final static int fourth_Const4 = 50;
}

applyToPrivate

privateメンバにチェックを適用するかどうか
デフォルト:true

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ConstantName">
            <property name="applyToPrivate" value="false"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // NG 定数名の正規表現にマッチしない
    public final static int FIRST_Constant1 = 10;
    // NG 定数名の正規表現にマッチしない
    protected final static int SECOND_Constant2 = 100;
    // NG 定数名の正規表現にマッチしない
    final static int third_Constant3 = 1000;
    // OK 「applyToPrivate=true」なのでチェック対象外
    private final static int fourth_Const4 = 50;
}