検証環境
Checkstyleバージョン:10.8.0
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 3.2 |
抽象クラスのクラス名が定義した正規表現にマッチしていることをチェックする。
併せてabstract
修飾子が存在することをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
format | Pattern | "^Abstract.+$" |
抽象クラス名の正規表現 | 3.2 |
ignoreModifier | boolean | false | abstract修飾子の存在チェックをスキップするかどうか | 5.3 |
ignoreName | boolean | false | クラス名のチェックをスキップするかどうか | 5.3 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="AbstractClassName"/> </module> </module>
チェック実行例
// OK abstract class AbstractFirstClass {} // NG 抽象クラスの命名ルールに合っていない abstract class SecondClass {} // NG 抽象クラスの命名ルールに合っているが、abstract修飾子がない class AbstractThirdClass {} // OK class FourthClass {}
プロパティ設定あり
format
抽象クラス名の正規表現
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="AbstractClassName"> <property name="format" value="^Abst.+$"/> </module> </module> </module>
チェック実行例
// NG 抽象クラスの命名ルールに合っていない abstract class AbstractFirstClass {} // OK abstract class AbstSecondClass {} // NG 抽象クラスの命名ルールに合っているが、abstract修飾子がない class AbstThirdClass {} // OK class FourthClass {}
ignoreModifier
abstract修飾子の存在チェックをスキップするかどうか デフォルト:false
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="AbstractClassName"> <property name="ignoreModifier" value="true"/> </module> </module> </module>
チェック実行例
// OK abstract class AbstractFirstClass {} // NG 抽象クラスの命名ルールに合っていない abstract class SecondClass {} // OK 「ignoreModifier=true」なのでabstract修飾子がなくてもOK class AbstractThirdClass {} // OK class FourthClass {}
ignoreName
クラス名のチェックをスキップするかどうか デフォルト:false
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="AbstractClassName"> <property name="ignoreName" value="true"/> </module> </module> </module>
チェック実行例
// OK abstract class AbstractFirstClass {} // OK 「ignoreModifier=true」なので抽象クラスのクラス名はチェックしない abstract class SecondClass {} // NG abstract修飾子がない class AbstractThirdClass {} // OK class FourthClass {}