minimize

Imports

AvoidStarImport

.* 形式のimport文をチェックします。
このワイルドカード形式は一見便利なのですが、
色々な弊害をもたらすことが知られています。

一番問題なのは、パッケージに新たなクラスが追加されたときの動作です。
例えば、

import pack1.*;
import pack2.*;
...
EtcClass.func();

このようなプログラムがあったとします。
pack1パッケージ内にEtcClassというクラスが定義されていれば
コンパイラはEtcClassをpack1.EtcClassと見なしてコンパイルを行います。

しかし、その後pack2パッケージ内にも
EtcClassというクラスが追加されてしまったらどうなるでしょう。
この場合、コンパイラはEtcClassがどのパッケージに属するかが判断できません。
つまり、コンパイルエラーが発生してしまいます。

こういったトラブルは実際に発生することはよくあります。
ワイルドカード形式のimport文を使わなければ、これを回避することが出来ます。

excludes

.* 形式のimport文のチェックを行わない(使用を許可する)パッケージ名を設定します。
この値は、下位のパッケージを再帰的に設定「しません」。
例えば、java.util をチェック対象から外しても java.util.regex はチェック対象から外れません。

IllegalImport

import文に現れると不正とみなすパッケージを設定します。

デフォルトでは、sun.* が設定されています。
このパッケージはPure Javaではなく、Javaの標準ライブラリから内部的に利用されます。
よって、ユーザプログラム中で直接importすることは通常間違っています。

RedundantImport

冗長なimport文をチェックします。
重複したimport文が存在したり、同一パッケージ内のクラスをimportしている場合などが
これに当てはまります。

UnusedImports

プログラム中で使用されていないimport文をチェックします。

ImportOrder

import文の宣言順序をチェックします。

groups

パッケージグループを定義します。
デフォルトでは定義されていません。

ordered

グループ内でimport文がソートされているかどうかをチェックします。
デフォルトは true です。

separated

グループの異なるimport宣言を、1行以上の空行で分けているかどうかをチェックします。
デフォルトは false です。

caseSensitive

ソート時にアルファベットの大小文字を区別するかどうかを設定します。
デフォルトは true です。

例を挙げます。

<module name="ImportOrder">
    <property name="groups" value="java,javax"/>
    <property name="ordered" value="true"/>
    <property name="separated" value="true"/>
</module>

この場合、以下のようなimport宣言が正しい形式になります。

import java.io.*;

import jaxax.naming.*;
import jaxax.net.*;

import org.w3c.dom.*;

ImportControl

より細かいimport文のチェックを行います。

file

チェック内容を記述した設定ファイルを定義します。
設定ファイルの構文は DTD を参照して下さい。
サンプルは ここ にあります。

[コメント(0)]
[PR] b nEXN[jOb f[^b FXb ]ETCgb SEOb ANZXb nEX[J[b ^ItBXb SEO΍b ҋZb sYSۃ[b vb b nCb AXNb ]Eb یb ev[gb ꗷsb b Ƌhb b zb ҋZb ŗmb Stb wb [VbNb }bT[Wb FXb Mb 365b AtBGCgb эb FXb z[y[Wb fCg[hb FXb COnb zm}\b xXg nC ze [cb ob nCEGfBOb Hawaii hotelsb Hawaii Activitiesb bhhrb
y^cЁup_CVtgvT[rXz nCnIvVicA[ibN}.j - rWlXNXq - iq(1) - iq(2) - COze - ؍s
z[y[W쐬 - ^T[o[ - gуz[y[W - uO - ze \ - ^CVFA - B - nC@Rh~jA - o@ze - nC@sY - v[Pbg@ze
[PR] ҋZOrIVłɂȂҋZr