検証環境
Checkstyleバージョン:10.3.3
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 3.1 |
メソッドを持たず定数のみを含むインタフェースを定義されていないかチェックする。
インターフェースは型を定義するものであるため、メソッドを持たず定数のみを含むインタフェースを定義することは不適切。
デフォルトではマーカーインターフェースはチェック対象外だが、プロパティでマーカーインターフェースもチェック対象とすることもできる。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
allowMarkerInterfaces | boolean | true | マーカインタフェースを許容するかどうか | 3.1 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="InterfaceIsType"/> </module> </module>
チェック実行例
// NG 定数しか定義されていないのでNG public interface Test1 { int a = 3; } // OK 「allowMarkerInterfaces=true」なのでマーカーインターフェースの定義はOK public interface Test2 { } // OK public interface Test3 { int a = 3; void test(); }
プロパティ設定あり
allowMarkerInterfaces
trueを設定した場合、マーカーインターフェースはチェックの対象外となる。(デフォルト:true)
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="InterfaceIsType"> <property name="allowMarkerInterfaces" value="false"/> </module> </module> </module>
チェック実行例
// NG 定数しか定義されていないのでNG public interface Test1 { int a = 3; } // NG 「allowMarkerInterfaces=false」なのでマーカーインターフェースはNG public interface Test2 { } // OK public interface Test3 { int a = 3; void test(); }