2006/06/24

Foo.class does not initialize class Foo!

marsのメモ

Tiger からは Foo.class として(メタ情報としての)クラス・オブジェクトを参照しただけでは Foo の static 初期化子が実行されないという話題。クラスのロードが必要な static メソッドの実行や、Class.forName() を使ってクラスを明示的にロードした場合は、もちろん実行される。へ〜、知らなかったよ。

教訓: static 初期化子の中で副作用のある処理をしない。

Comments: コメントを投稿



<< Home

This page is powered by Blogger. Isn't yours?