検証環境
Checkstyleバージョン:10.8.0
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 8.36 |
制限された名前や文脈上のキーワードなど、不正な名前の集合のパターンを持つ識別子をチェックする。
例として、yield
、record
、_
、var
などが挙げられる。
制限キーワードの詳細については、Java言語仕様書参照。
このチェックでは、有効な識別子を正規表現によって指定するため、"$"などの特定の記号や、非アスキー文字の使用を禁止することも可能。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
format | Pattern | "(?i)^(?!(record|yield|var|permits|sealed|_)$).+$" |
識別子として使用不可とするキーワードの正規表現 | 8.36 |
tokens | トークンのサブセット | CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, ENUM_CONSTANT_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF, RECORD_COMPONENT_DEF, LAMBDA |
チェック対象のトークン | 8.36 |
〇トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
CLASS_DEF | クラス宣言 |
INTERFACE_DEF | インターフェース宣言 |
ENUM_DEF | Enum宣言 |
ANNOTATION_DEF | アノテーション宣言 |
ANNOTATION_FIELD_DEF | アノテーションフィールド宣言 |
PARAMETER_DEF | パラメータ宣言 |
VARIABLE_DEF | フィールド・ローカル変数宣言 |
METHOD_DEF | メソッド宣言 |
ENUM_CONSTANT_DEF | Enum定数宣言 |
PATTERN_VARIABLE_DEF | パターン変数宣言 |
RECORD_DEF | レコード宣言 |
RECORD_COMPONENT_DEF | レコードコンポーネント宣言 |
LAMBDA | ラムダ式の-> |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="IllegalIdentifierName"/> </module> </module>
チェック実行例
public class MyClass { public static void main(String... args) { // NG 「var」は変数名として使用不可 var var = 4; // NG 「record」は変数名として使用不可 int record = 15; // NG 「yield」は変数名として使用不可 String yield = "yield"; // OK String yieldString = "yieldString"; // OK var variable = 2; // NG 「_」は変数名として使用不可 String _; } }
プロパティ設定あり
format
識別子として使用不可とするキーワードの正規表現
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="IllegalIdentifierName"> <property name="format" value="(?i)^(?!(record|yield|var|permits|sealed|open|transitive|_)$).+$"/> </module> </module> </module>
チェック実行例
public class MyClass { public static void main(String... args) { // NG 「open」は変数名として使用不可 int open = 4; // NG 「transitive」は変数名として使用不可 Object transitive = "transitive"; // OK int openInt = 4; // OK Object transitiveObject = "transitiveObject"; } }
tokens
チェック対象のトークンをコンマ区切りで指定する。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="IllegalIdentifierName"> <property name="tokens" value="INTERFACE_DEF"/> </module> </module> </module>
チェック実行例
public class MyClass { public static void main(String... args) { // OK フィールドはチェック対象外 int open = 4; // OK フィールドはチェック対象外 Object transitive = "transitive"; // OK フィールドはチェック対象外 int openInt = 4; // OK フィールドはチェック対象外 Object transitiveObject = "transitiveObject"; } }