MissingJavadocMethod
検証環境
Checkstyleバージョン:10.3.3
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 8.21 |
メソッドまたはコンストラクタのJavadocコメントが欠落していないかどうかをチェックする。
検証するスコープはScopeクラスを使用して指定し、デフォルトは Scope.PUBLIC。
Overrideアノテーションでタグ付けされたメソッドにはJavadocは必要ないが、Java5以前ではインターフェイスに必要なメソッドをマークすることはできない(これはJava6で修正された)。
Checkstyleでは、他のすべてのタグの代わりに1つの{@inheritDoc}タグを使用する慣習をサポートしている。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
minLineCount | int | -1 | Javadocの欠落を許可するメソッドの最小行数 | 8.21 |
allowedAnnotations | String[] |
Override | Javadocの欠落を許可するアノテーション | 8.21 |
scope | Scope | public | Javadocコメントをチェックする可視性スコープを指定 | 8.21 |
excludeScope | Scope | null | Javadocコメントをチェックしない可視性スコープを指定 | 8.21 |
allowMissing PropertyJavadoc | boolean | false | プロパティ(セッターとゲッター)のアクセサー・メソッドにJavadocがないことを許可するかどうか | 8.21 |
ignoreMethod NamesRegex | Pattern | null | チェック対象外とするメソッド名の正規表現 | 8.21 |
tokens | トークンの サブセット | METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF |
チェック対象のトークン | 8.21 |
〇 Scopeには以下の値が設定可能
public を指定すると、public な修飾子を持つ項目のみがチェックされる。
protected を指定すると、public および protected 修飾子のみをチェックする。
- nothing
- public
- protected
- package
- private
- anoninner
〇 トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
METHOD_DEF | メソッド宣言 |
CTOR_DEF | コンストラクタ宣言 |
ANNOTATION_FIELD_DEF | アノテーションフィールド宣言 |
COMPACT_CTOR_DEF | 引数なしコンストラクタ宣言 |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"/> </module> </module>
チェック実行例
public class MyClass { // NG Javadocコメントがない public MyClass() {} // NG Javadocコメントがない public void foo() {} // OK /** * Some description here. */ public void foo2() {} // OK @overrideアノテーションが付与されているのでチェック対象外 @Override public String toString() { return "Some string"; } // OK privateメソッドはチェック対象外 private void foo3() {} // OK protectedメソッドはチェック対象外 protected void foo4() {} // OK package-privateメソッドはチェック対象外 void foo5() {} }
プロパティ設定あり
minLineCount
Javadocの欠落を許可するメソッドの最小行数
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="minLineCount" value="1"/> </module> </module> </module>
チェック実行例
public class MyClass { // NG Javadocコメントがない public getName() { String s = "あああ"; return s; } // OK メソッドが1行なのでチェック対象外 public getId() { return "a"; } }
allowedAnnotations
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="allowedAnnotations" value="Test"/> </module> </module> </module>
チェック実行例
public class MyClass { // NG Javadocコメントがない public getName() { String s = "あああ"; return s; } // OK @Testがついているのでチェック対象外 @Test public getId() { return "a"; } }
scope
Javadocコメントをチェックする可視性スコープを指定する
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="scope" value="public"/> </module> </module> </module>
チェック実行例
public class MyClass { // NG Javadocコメントがない public getName() { String s = "あああ"; return s; } // OK publicでないのでチェック対象外 @Test getId() { return "a"; } }
excludeScope
Javadocコメントをチェックしない可視性スコープを指定する
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="excludeScope" value="public"/> </module> </module> </module>
チェック実行例
public class MyClass { // OK publicなのでチェック対象外 public getName() { String s = "あああ"; return s; } // NG Javadocコメントがない @Test getId() { return "a"; } }
allowMissingPropertyJavadoc
プロパティ(セッターとゲッター)のアクセサー・メソッドにJavadocがないことを許可するかどうか(デフォルト:false)
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="allowMissingPropertyJavadoc" value="true"/> </module> </module> </module>
チェック実行例
public class MyClass { // OK allowMissingPropertyJavadocがtrueなのでチェック対象外 public getName() { return name; } }
ignoreMethodNamesRegex
チェック対象外とするメソッド名の正規表現
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="ignoreMethodNamesRegex" value="getName"/> </module> </module> </module>
チェック実行例
public class MyClass { // OK ignoreMethodNamesRegexに合致するメソッド名なのでチェック対象外 public getName() { return name; } }
tokens
チェック対象のトークン
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="MissingJavadocMethod"> <property name="tokens" value="CTOR_DEF"/> </module> </module> </module>
チェック実行例
public class MyClass { // OK メソッドはチェック対象外 public getName() { return name; } }