Staticインポートって

先週Scalaをいじっていて、Javaジェネリックに行き着いた。
ついでといってはなんだけど、Java5の新機能も確認してみている。(現在進行中)

Staticインポートとは?

Staticメンバーをインポートできる。
意外と地味?

つかってみる

import static java.lang.System.out;
public class Hoge{
    public static void main(String[] args){
        out.println("hoge");
    }
}

2年強ぶりにJavaのソース書いた気がする。
と、こんな感じでSystemクラスのstaticなメンバーoutをインポートすると
out.println("hoge")って感じに書けるだって。

つまるところ

静的、動的はちょこっとおいておいて、JavaScriptで書くと
こんなことをやっているのと同じ感じだろうか。

var java = {
    lang:{
        System:{
            out:{
                println:function(x){
                    alert(x);
                }
            }
        }
    }
};
var out = java.lang.System.out;

out.println("hoge");

ちょっと、無理やりな感じだけど。
outの参照を変数に入れておいて、長々書かなくてもいいよ
ってところなのかな。
きっとこれに、静的、動的が入ってくるとこんがらがってくるのかも
しれないけど、イメージはこう思っていればわかりやすいだろうな。