Checkstyle Javaルール

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

ExecutableStatementCount

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

実行可能なステートメントの数が指定した値を超えていないかチェックする。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
max int 30 最大値 3.2
tokens トークンの サブセット CTOR_DEF, METHOD_DEF,
INSTANCE_INIT,
STATIC_INIT,
COMPACT_CTOR_DEF,
LAMBDA
チェック対象のトーク 3.2

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

説明
CTOR_DEF コンストラクタ宣言
METHOD_DEF メソッド宣言
INSTANCE_INIT インスタンスイニシャライザ
STATIC_INIT スタティックイニシャライザ
COMPACT_CTOR_DEF 引数なしコンストラクタ宣言
LAMBDA ラムダ式

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

public class MyClass extends ParentClass {
    private String str;
    
    private int number;
    
    public MyClass(String str, int number) {
        // ステートメントの数が30に設定した値を超える場合はNGとなる
        super();
        this.str = str;
        this.number = number;
    }
}

プロパティ設定あり

max

許容される最大行数。デフォルト:30

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ExecutableStatementCount">
            <property name="max" value="2"/>
        </module>
    </module>
</module>

チェック実行例

public class MyClass extends ParentClass {
    private String str;
    
    private int number;
    
    public MyClass(String str, int number) {
        // NG ステートメントの数が2を超えている
        super();
        this.str = str;
        this.number = number;
    }
}

tokens

チェック対象のトークンのサブセットをコンマ区切りで記述する。

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="ExecutableStatementCount">
            <property name="tokens" value="CTOR_DEF,METHOD_DEF"/>
            <property name="max" value="2"/>
        </module>
    </module>
</module>

チェック実行例

public class MyClass extends ParentClass {
    private String str;
    
    private int number;
    
    public MyClass(String str, int number) {
        // NG ステートメントの数が2を超えている
        super();
        this.str = str;
        this.number = number;
    }
}