Checkstyle Javaルール

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

HideUtilityClassConstructor

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

ユーティリティクラス (staticメソッドまたはstaticフィールドのみを含むクラス) がパブリックコンストラクタを持たないことをチェックする。

ユーティリティクラスはインスタンス化する必要がないため、コンストラクタはprivateprotected(サブクラス化を許可する場合)のいずれかにする必要がある。

設定+チェック実行結果

設定ファイル記述方法

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

チェック実行例

// NG ユーティリティクラスにpublicなコンストラクタは持たない
class MyClass {
    public MyClass() {
    }

    public static void foo() {
    }
}

// OK
class MyClass {

    private MyClass() {
    }

    static int n;
}

// NG デフォルトコンストラクタ(public)が定義されている
class MyClass { 
    static float f;
}