import static を使えば、クラスのstaticな定数をクラス継承しなくてもそのまま利用できるようになった。どのクラスの定数かわかるように明示する方が良いような気がするが、一つのクラスの定数しか利用しないのであれば、重宝しそうだ。java.lang.Runnableインタフェースを実装するクラスでjava.lang.Threadの優先度の定数を使いたい場合などありそうだ。java.awt.Colorのstatic定数もよく使いそうだ。
簡単なプログラム例を以下に示す。java.lang.Threadのstatic定数をimport static でとりこみ、参照している。
import static java.lang.Thread.*;
public class StaticImportTest {
public static void main(String[] args) {
System.out.println(“Thread.MAX_PRIORITY : “+MAX_PRIORITY);
System.out.println(“Thread.NORM_PRIORITY: “+NORM_PRIORITY);
System.out.println(“Thread.MIN_PRIORITY : “+MIN_PRIORITY);
}
}
実行結果は次のようになる。
$ javac -source 1.5 StaticImportTest.java
$ java StaticImportTest
Thread.MAX_PRIORITY : 10
Thread.NORM_PRIORITY: 5
Thread.MIN_PRIORITY : 1
$ java StaticImportTest
Thread.MAX_PRIORITY : 10
Thread.NORM_PRIORITY: 5
Thread.MIN_PRIORITY : 1