Checkstyle Javaルール

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

LambdaBodyLength

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

ラムダ式の行数が指定の値よりも多くないかチェックする。

匿名内部クラスと同様に、ラムダ本体が非常に長くなると、ラムダが定義されているメソッドの流れを理解するのが難しくなるため、長いラムダ本体は通常メソッドに抽出されるべき。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
max int 10 最大値 8.37

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

// NG 11行なのでNG
Runnable r = () -> {
    System.out.println(2);
    System.out.println(3);
    System.out.println(4);
    System.out.println(5);
    System.out.println(6);
    System.out.println(7);
    System.out.println(8);
    System.out.println(9);
    System.out.println(10);
};

プロパティ設定あり

max

ラムダ式の行数の最大値(デフォルト:10)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="LambdaBodyLength">
            <property name="max" value="5"/>
        </module>
    </module>
</module>

チェック実行例

// NG 6行なのでNG
Runnable r = () -> {
    System.out.println(2);
    System.out.println(3);
    System.out.println(4);
    System.out.println(5);
};