Checkstyle Javaルール

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

MethodLength

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

行数の多いメソッドとコンストラクタがないかチェックする。
メソッドが非常に長くなると理解するのが難しくなるため、長いメソッドは通常、特定のタスクに焦点を当てたいくつかの個別のメソッドにリファクタリングする必要がある。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
max int 150 最大値 3.0
countEmpty boolean true 空行やコメントをカウントするかどうか 3.2
tokens トークンの サブセット METHOD_DEF,
CTOR_DEF,
COMPACT_CTOR_DEF
チェック対象のトーク 3.0

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

説明
METHOD_DEF メソッド宣言
CTOR_DEF コンストラクタ宣言
COMPACT_CTOR_DEF 引数なしコンストラクタ宣言

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

public class MyClass {
    // maxに指定した値よりも行数が多いとNG
    // 以下のメソッドは6行とカウントされる
    public void foo() {
        int index = 0;
        if (index < 5) {
            index++;
        }
    }
}

プロパティ設定あり

max

許容される最大行数(デフォルト:150)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MethodLength">
            <property name="max" value="4"/>
        </module>
    </module>
</module>

countEmpty

空行やコメントをカウントするかどうか(デフォルト:true)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MethodLength">
            <property name="countEmpty" value="false"/>
        </module>
    </module>
</module>

tokens

チェック対象のトークンをコンマ区切りで指定する

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="MethodLength">
            <property name="tokens" value="CTOR_DEF"/>
        </module>
    </module>
</module>