2008-07-01から1ヶ月間の記事一覧

型パラメータつき引数

ちょっと誤解していたので書いておく。 ArrayList<String> list = new ArrayList<String>(); で、list.getClass()が返すClassオブジェクトは型パラメータ(String)の情報を持たないが、 public void hoe(List<String> list) { } のhoeメソッドに対応するMethodオブジェクトは、型パ</string></string></string>…

Freemarkerの「??」演算子

Freemarkerでnullチェックをするための「??」演算子はfreemarker-2.3.6では使えなかった。2.3.9にバージョンアップしたところ使えた。

Boolean.TYPEとboolean.class

プリミティブ型に対応するラッパ型が持つ「TYPE」という定数はプリミティブ型のクラスを表す。 例えばBeoolean.TYPEはbooleanのクラス型を表すが、これはboolean.classと同じ。 System.out.println(boolean.class == Boolean.TYPE); → trueところで次のよう…

アノテーションオブジェクトの生成

アノテーションAnnoのオブジェクトは@Annoが付与されているクラスやメソッドに対応するClassやMethodオブジェクトについてAnnotatedElement#getAnnotation(Anno.class)を呼び出すことで取得できるが、新たに生成したいことがある(かもしれない)。そこでい…

throw null

なんとなく気になったので試してみた。 public void test() { RuntimeException ex = null; throw ex; } 実行すると「throw ex」のところでNPE。当たり前と言えば当たり前か。

いまさらdouble-checked locking問題

友人に聞かれたので、ちょっとあいまいになっていた記憶を呼び覚ますためにdouble-checked lockingについて調査。以下のページにまとめられていた。 http://blogs.wankuma.com/nagise/archive/2007/08/24/91598.aspx 要約: JDK1.5からはメモリモデルが変更…