Checkstyle Javaルール

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

AnonInnerLength

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

長い内部匿名クラスが存在していないかチェックする。
デフォルトでは20行を超える場合チェックNGとなる。

無名内部クラスが非常に長くなると、そのクラスが定義されているメソッドの流れを理解するのが難しくなるため、長い匿名内部クラスは通常、名前付き内部クラスにリファクタリングする必要がある。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
max int 20 許容される最大行数 3.2

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

public interface MyInterface {
    void foo();
}

public class MyClass {
    // 内部匿名クラスの行数が20行を超えるとNGとなる
    MyInterface my = new MyInterface() {
        void foo(){
            System.out.println("foo");
        }
    };
}

プロパティ設定あり

max

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

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AnonInnerLength">
            <property name="max" value="3"/>
        </module>
    </module>
</module>