AvoidStarImport
検証環境
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.*;