Checkstyle Javaルール

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

StaticVariableName

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

staticでfinalでない変数の変数名が指定の正規表現にマッチしているがどうかをチェックする。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^[a-z][a-zA-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="StaticVariableName"/>
    </module>
</module>

チェック実行例

class MyClass {
    // OK
    public static int goodStatic = 2;
    // NG 変数名の正規表現にマッチしない
    private static int BadStatic = 2;
}

プロパティ設定あり

format

変数名の正規表現

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="StaticVariableName">
            <property name="format" value="^[A-Z][a-zA-Z0-9]*$" />
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // NG 変数名の正規表現にマッチしない
    public static int goodStatic = 2;
    // OK
    private static int BadStatic = 2;
}

applyToPublic

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

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // OK 「applyToPublic=false」なのでチェック対象外
    public static int Static1 = 2;
    // NG 変数名の正規表現にマッチしない
    protected static int Static2 = 2;
    // NG 変数名の正規表現にマッチしない
    static int Static3 = 2;
    // NG 変数名の正規表現にマッチしない
    private static int Static4 = 2;
}

applyToProtected

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

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // NG 変数名の正規表現にマッチしない
    public static int Static1 = 2;
    // OK 「applyToProtected=false」なのでチェック対象外
    protected static int Static2 = 2;
    // NG 変数名の正規表現にマッチしない
    static int Static3 = 2;
    // NG 変数名の正規表現にマッチしない
    private static int Static4 = 2;
}

applyToPackage

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

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // NG 変数名の正規表現にマッチしない
    public static int Static1 = 2;
    // NG 変数名の正規表現にマッチしない
    protected static int Static2 = 2;
    // OK 「applyToPackage=false」なのでチェック対象外
    static int Static3 = 2;
    // NG 変数名の正規表現にマッチしない
    private static int Static4 = 2;
}

applyToPrivate

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

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // NG 変数名の正規表現にマッチしない
    public static int Static1 = 2;
    // NG 変数名の正規表現にマッチしない
    protected static int Static2 = 2;
    // NG 変数名の正規表現にマッチしない
    static int Static3 = 2;
    // OK 「applyToPrivate=false」なのでチェック対象外
    private static int Static4 = 2;
}