TypeName
検証環境
Checkstyleバージョン:10.8.0
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 3.0 |
型名が指定の正規表現にマッチしているがどうかをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
format | Pattern | "^[A-Z][a-zA-Z0-9]*$" |
型名の正規表現 | 3.0 |
applyToPublic | boolean | true | publicメンバにチェックを適用するかどうか | 5.0 |
applyToProtected | boolean | true | protectedメンバにチェックを適用するかどうか | 5.0 |
applyToPackage | boolean | true | package-privateメンバにチェックを適用するかどうか | 5.0 |
applyToPrivate | boolean | true | privateメンバにチェックを適用するかどうか | 5.0 |
tokens | トークンの サブセット | CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, RECORD_DEF |
チェック対象のトークン | 3.0 |
〇トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
CLASS_DEF | クラス宣言 |
INTERFACE_DEF | インターフェース宣言 |
ENUM_DEF | Enum宣言 |
ANNOTATION_DEF | アノテーション宣言 |
RECORD_DEF | レコード宣言 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"/> </module> </module>
チェック実行例
// OK public interface FirstName {} // OK protected class SecondName {} // NG クラス名の正規表現にマッチしない enum Third_Name {} // NG クラス名の正規表現にマッチしない private class FourthName_ {}
プロパティ設定あり
format
型名の正規表現
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="format" value="^[a-z][a-zA-Z0-9]*$" /> </module> </module> </module>
チェック実行例
// NG クラス名の正規表現にマッチしない public interface FirstName {} // NG クラス名の正規表現にマッチしない protected class SecondName {} // OK enum thirdName {} // OK private class fourthName {}
applyToPublic
publicメンバにチェックを適用するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="applyToPublic" value="false" /> </module> </module> </module>
チェック実行例
// OK 「applyToPublic=false」なのでチェック対象外 public interface firstName {} // NG クラス名の正規表現にマッチしない protected class secondName {} // NG クラス名の正規表現にマッチしない enum thirdName {} // NG クラス名の正規表現にマッチしない private class fourthName {}
applyToProtected
Protectedメンバにチェックを適用するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="applyToProtected" value="false" /> </module> </module> </module>
チェック実行例
// NG クラス名の正規表現にマッチしない public interface firstName {} // OK 「applyToProtected=false」なのでチェック対象外 protected class secondName {} // NG クラス名の正規表現にマッチしない enum thirdName {} // NG クラス名の正規表現にマッチしない private class fourthName {}
applyToPackage
Package-Privateメンバにチェックを適用するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="applyToPackage" value="false" /> </module> </module> </module>
チェック実行例
// NG クラス名の正規表現にマッチしない public interface firstName {} // NG クラス名の正規表現にマッチしない protected class secondName {} // OK 「applyToPackage=false」なのでチェック対象外 enum thirdName {} // NG クラス名の正規表現にマッチしない private class fourthName {}
applyToPrivate
Privateメンバにチェックを適用するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="applyToPrivate" value="false" /> </module> </module> </module>
チェック実行例
// NG クラス名の正規表現にマッチしない public interface firstName {} // NG クラス名の正規表現にマッチしない protected class secondName {} // NG クラス名の正規表現にマッチしない enum thirdName {} // OK 「applyToPrivate=false」なのでチェック対象外 private class fourthName {}
tokens
チェック対象のトークン
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="tokens" value="CLASS_DEF" /> </module> </module> </module>
チェック実行例
// OK チェック対象外のトークン public interface firstName {} // NG クラス名の正規表現にマッチしない protected class secondName {} // OK チェック対象外のトークン enum thirdName {} // NG クラス名の正規表現にマッチしない private class fourthName {}