ParameterName
検証環境
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; } }