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.*;