Checkstyle Javaルール

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

ParameterName

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

メソッドのパラメータ名が指定の正規表現にマッチしているがどうかをチェックする。
accessModifiersプロパティを使用することで、可視化レベルの異なるメソッドに対して異なるフォーマットを指定することができる。

キャッチパラメータを検証する場合は、CatchParameterNameを使用する。
ラムダパラメータの検証には、LambdaParameterNameを使用する。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^[a-z][a-zA-Z0-9]*$" メソッドのパラメータ名の正規表現 3.0
ignoreOverridden boolean false Overrideアノテーションを持つメソッドをチェック対象外とするかどうか 6.12.1
accessModifiers AccessModifierOption[] public, protected, package, private パラメータがチェックされるメソッドのアクセス修飾子 7.5

〇AccessModifierOptionには以下の値が設定可能

  • public
  • protected
  • package
  • private

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // OK
    void method1(int v1) {
    }

    // NG パラメータ名の正規表現にマッチしない
    void method2(int V2) {
    }

    // NG パラメータ名の正規表現にマッチしない
    @Override
    public boolean equals(Object V3) {
        return true;
    }
}

プロパティ設定あり

format

メソッドのパラメータ名の正規表現

設定ファイル記述方法

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

チェック実行例

class MyClass {
    // NG パラメータ名の正規表現にマッチしない
    void method1(int v1) {
    }

    // OK
    void method2(int V2) {
    }

    // OK
    @Override
    public boolean equals(Object V3) {
        return true;
    }
}

ignoreOverridden

Overrideアノテーションを持つメソッドをチェック対象外とするかどうか
デフォルト:false

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ParameterName">
            <property name="ignoreOverridden" value="true"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // OK
    void method1(int v1) {
    }
    // NG パラメータ名の正規表現にマッチしない
    void method2(int V2) {
    }
    
    // OK 「ignoreOverridden=true」なのでOK
    @Override
    public boolean equals(Object V3) {
        return true;
    }
}

accessModifiers

パラメータがチェックされるメソッドのアクセス修飾子

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ParameterName">
            <property name="accessModifiers" value="public"/>
        </module>
    </module>
</module>

チェック実行例

class MyClass {
    // OK
    public void method1(int v1) {
    }
    
    // OK package-privateメソッドはチェック対象外
    void method2(int V2) {
    }
    
    // NG パラメータ名の正規表現にマッチしない
    @Override
    public boolean equals(Object V3) {
        return true;
    }
}