LocalFinalVariableName
検証環境
Checkstyleバージョン:10.8.0
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 3.0 |
finalなローカル変数名が指定の正規表現にマッチしているがどうかをチェックする。
catchパラメータとtry文のリソースは、finalなローカル変数とみなされる。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
format | Pattern | "^[a-z][a-zA-Z0-9]*$" |
変数名の正規表現 | 3.0 |
tokens | トークンの サブセット | VARIABLE_DEF, PARAMETER_DEF, RESOURCE |
チェック対象のトークン | 3.0 |
〇トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
VARIABLE_DEF | フィールド・ローカル変数宣言 |
PARAMETER_DEF | パラメータ宣言 |
RESOURCE | try-with-resourceのリソース |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LocalFinalVariableName"/> </module> </module>
チェック実行例
class MyClass { void foo() { try { // NG 変数名の正規表現にマッチしない final int VAR1 = 5; // OK final int var1 = 10; } catch (Exception ex) { // NG 変数名の正規表現にマッチしない final int VAR2 = 15; // OK final int var2 = 20; } } }
プロパティ設定あり
format
変数名の正規表現
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LocalFinalVariableName"> <property name="format" value="^[A-Z][A-Z0-9]*$"/> </module> </module> </module>
チェック実行例
class MyClass { void foo() { try { // OK final int VAR1 = 5; // NG 変数名の正規表現にマッチしない final int var1 = 10; } catch (Exception ex) { // OK final int VAR2 = 15; // NG 変数名の正規表現にマッチしない final int var2 = 20; } } }
tokens
チェック対象のトークン
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LocalFinalVariableName"> <property name="tokens" value="PARAMETER_DEF"/> </module> </module> </module>
チェック実行例
class MyClass { void foo() { try { // OK final int VAR1 = 5; // OK パラメータ名以外はチェック対象外 final int var1 = 10; } catch (Exception ex) { // OK final int VAR2 = 15; // OK パラメータ名以外はチェック対象外 final int var2 = 20; } } }