Checkstyle Javaルール

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

LocalVariableName

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

finalでないローカル変数名が指定の正規表現にマッチしているがどうかをチェックする。
catchパラメータはローカル変数とみなされる。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^[a-z][a-zA-Z0-9]*$" 変数名の正規表現 3.0
allowOneCharVarInForLoop boolean false formatプロパティで1文字の変数名が禁止されている場合に、
FORループの初期化式で1文字の変数名を許容するかどうか
5.8

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

class MyClass {
    void MyMethod() {
        // OK
        for (int var = 1; var < 10; var++) {}
        // NG 変数名の正規表現にマッチしない
        for (int VAR = 1; VAR < 10; VAR++) {}
        // OK
        for (int i = 1; i < 10; i++) {}
        // NG 変数名の正規表現にマッチしない
        for (int var_1 = 0; var_1 < 10; var_1++) {}
    }
}

プロパティ設定あり

format

変数名の正規表現

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="LocalVariableName">
            <property name="format" value="^[a-z](_?[a-zA-Z0-9]+)*$"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    void MyMethod() {
        // OK
        for (int var = 1; var < 10; var++) {}
        // NG 変数名の正規表現にマッチしない
        for (int VAR = 1; VAR < 10; VAR++) {}
        // OK
        for (int i = 1; i < 10; i++) {}
        // OK
        for (int var_1 = 0; var_1 < 10; var_1++) {}
    }
}

allowOneCharVarInForLoop

formatプロパティで1文字の変数名が禁止されている場合にFORループの初期化式で1文字の変数名を許容するかどうか
デフォルト:false

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="LocalVariableName">
            <property name="allowOneCharVarInForLoop" value="true"/>
            <property name="format" value="^[a-z][a-zA-Z0-9]+$"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    void MyMethod() {
        // OK
        for (int var = 1; var < 10; var++) {}
        // NG 変数名の正規表現にマッチしない
        for (int VAR = 1; VAR < 10; VAR++) {}
        // OK 「allowOneCharVarInForLoop=true」なのでチェックOK
        for (int i = 1; i < 10; i++) {}
        // NG 変数名の正規表現にマッチしない
        for (int var_1 = 0; var_1 < 10; var_1++) {}
    }
}