LambdaBodyLength
検証環境
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); };