Checkstyle Javaルール

CheckstyleのJavaルールについて1つずつまとめます

MissingJavadocType

CheckStyle公式ドキュメント

検証環境

Checkstyleバージョン:10.3.3
Javaバージョン:17


チェック概要

チェック追加バージョン
Checkstyle 8.20

クラス、enum、インターフェース、およびアノテーション・インターフェース定義の Javadocコメントが欠落していないかどうかをチェックする。
検証するスコープはScopeクラスを使用して指定し、デフォルトは Scope.PUBLIC。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
scope Scope public Javadocコメントをチェックする可視性スコープを指定 8.20
excludeScope Scope null Javadocコメントをチェックしない可視性スコープを指定 8.20
skipAnnotations String[] Generated ドキュメントの欠落を許可するアノテーション 8.20
tokens トークンの サブセット INTERFACE_DEF,
CLASS_DEF,
ENUM_DEF,
ANNOTATION_DEF,
RECORD_DEF
チェック対象のトーク 8.20

〇 Scopeには以下の値が設定可能
public を指定すると、public な修飾子を持つ項目のみがチェックされる。
protected を指定すると、public および protected 修飾子のみをチェックする。

  • nothing
  • public
  • protected
  • package
  • private
  • anoninner

トークンのサブセットには以下の値が設定可能

説明
INTERFACE_DEF インターフェース宣言
CLASS_DEF クラス宣言
ENUM_DEF Enum宣言
ANNOTATION_DEF アノテーション宣言
RECORD_DEF レコード宣言

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingJavadocType"/>
    </module>
</module>

チェック実行例

// NG Javadocコメントがない
public class PublicClass {
}

// OK privateクラスはチェック対象外
private class PrivateClass {
}
// OK protectedクラスはチェック対象外
protected class ProtectedClass {
}
// OK package-privateクラスはチェック対象外
class PackagePrivateClass {
}

プロパティ設定あり

scope

Javadocコメントをチェックする可視性スコープを指定する

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingJavadocType">
            <property name="scope" value="private"/>
        </module>
    </module>
</module>

チェック実行例

// NG Javadocコメントがない
public class PublicClass {
}

// NG Javadocコメントがない
private class PrivateClass {
}
// NG Javadocコメントがない
protected class ProtectedClass {
}
// NG Javadocコメントがない
class PackagePrivateClass {
}

excludeScope

Javadocコメントをチェックしない可視性スコープを指定する

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingJavadocType">
            <property name="excludeScope" value="public"/>
        </module>
    </module>
</module>

チェック実行例

// NG publicクラスはチェック対象外
public class PublicClass {
}

// NG Javadocコメントがない
private class PrivateClass {
}
// NG Javadocコメントがない
protected class ProtectedClass {
}
// NG Javadocコメントがない
class PackagePrivateClass {
}

skipAnnotations

ドキュメントの欠落を許可するアノテーション

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingJavadocType">
            <property name="skipAnnotations" value="Configuration"/>
        </module>
    </module>
</module>

チェック実行例

// OK skipAnnotationsに設定したアノテーションが付与されているのでチェック対象外
@Configuration
public class PublicClass {
}

// NG publicクラスはチェック対象外
public class PublicClass {
}

tokens

チェック対象のトークンを指定する

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingJavadocType">
            <property name="tokens" value="INTERFACE_DEF"/>
        </module>
    </module>
</module>

チェック実行例

// OK クラス宣言はチェック対象外
public class PublicClass {
}