Checkstyle Javaルール

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

AvoidStarImport

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

*を使用するimport文がないことをチェックする。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
excludes String[] {} *を使用するインポートが許可されるパッケージと、 *を使用するstaticインポートが許可されるクラスを指定 3.2
allowClassImports boolean false import java.util.*; のような*を使用するインポートを許可するかどうか 5.3
allowStaticMemberImports boolean false import static org.junit.Assert.*; のように、*を使用するstaticインポートを許可するかどうか 5.3

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

// OK
import java.util.Scanner;
// NG *を使用しない
import java.io.*;
// NG *を使用しない
import static java.lang.Math.*;
// NG *を使用しない
import java.util.*;
// NG *を使用しない
import java.net.*;

プロパティ設定あり

excludes

*を使用するインポートが許可されるパッケージと、 *を使用するstaticインポートが許可されるクラスを指定する(コンマ区切り)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AvoidStarImport">
            <property name="excludes" value="java.io,java.net"/>
        </module>
    </module>
</module>

チェック実行例

// OK
import java.util.Scanner;
// OK 「excludes」に含まれているので*でもOK
import java.io.*;
// NG *を使用しない
import static java.lang.Math.*;
// NG *を使用しない
import java.util.*;
// OK 「excludes」に含まれているので*でもOK
import java.net.*;

allowClassImports

import java.util.*; のような*を使用するインポートを許可するかどうか(デフォルト:false)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AvoidStarImport">
            <property name="allowClassImports" value="true"/>
        </module>
    </module>
</module>

チェック実行例

// OK
import java.util.Scanner;
// OK 「allowClassImports=true」なので*でもOK
import java.io.*;
// NG *を使用しない
import static java.lang.Math.*;
// OK 「allowClassImports=true」なので*でもOK
import java.util.*;
// OK 「allowClassImports=true」なので*でもOK
import java.net.*;

allowStaticMemberImports

import static org.junit.Assert.*; のように、*を使用するstaticインポートを許可するかどうか(デフォルト:false)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AvoidStarImport">
            <property name="allowStaticMemberImports" value="true"/>
        </module>
    </module>
</module>

チェック実行例

// OK
import java.util.Scanner;
// NG *を使用しない
import java.io.*;
// OK 「allowStaticMemberImports=true」なので*でもOK
import static java.lang.Math.*;
// NG *を使用しない
import java.util.*;
// NG *を使用しない
import java.net.*;