検証環境
Checkstyleバージョン:10.3.3
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 5.0 |
アノテーション@Override
とJavadocタグの@inheritDoc
いずれかが存在する場合、それらの両方が存在することをチェックする。
無効なメソッド(例:プライベートメソッド、staticメソッド)で@inheritDoc
を使用すると、このチェックで違反となる。
Java5とJava6以降では、@Overrideアノテーションに若干の違いがある。
Java5では、インターフェイスからオーバーライドされたメソッドは@Overrideアノテーションを付けることができないが、Java6以降では許可されている。
Java5の@Overrideの動作でチェックを行いたい場合はプロパティ「javaFiveCompatibility」にtrueを設定する。このプロパティはJava5のソース上でのみ使用することを推奨する。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
javaFiveCompatibility | boolean | false | Java5互換モードを有効にするかどうか | 5.0 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingOverride"/> </module> </module>
チェック実行例
public class MyClass { // OK /** {@inheritDoc} */ @Override public void test1(){ } // NG @Overrideがない /** {@inheritDoc} */ public void test2(){ } // NG privateメソッドで{@inheritDoc}を使用している /** {@inheritDoc} */ private void test3(){ } // NG staticメソッドで{@inheritDoc}を使用している /** {@inheritDoc} */ public static void test4(){ } }
プロパティ設定あり
javaFiveCompatibility
trueを設定した場合、Java5の@Overrideの動作でチェックを行う。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name = "MissingOverride"> <property name="javaFiveCompatibility" value="true"/> </module> </module> </module>
チェック実行例
プロパティはJava5使用時以外はtrueに設定するべきではないので省略。