2013年4月30日火曜日

[Java]static initializerは複数書ける?

これもコードレビューネタ。
少し前なんですが、Javaでstaticブロック(static initializer)で変数を初期化している処理があったんですが、なんと、複数個所にstatic{}があるじゃないですか!コード例はこんな感じ。
static class StaticInitClass {

    static {
        System.out.println("StaticInitClass{}1");
    }

    static {
        System.out.println("StaticInitClass{}2");
    }

    StaticInitClass() {
        System.out.println("StaticInitClass()");
    }
}

■出力結果
StaticInitClass{}1
StaticInitClass{}2
StaticInitClass()

こんなコードが書けるとは。。。固定観念でした。

0 件のコメント :