Eclipse 3.2リリース間近

だそうです。


Eclipse Callisto | The Eclipse Foundation


しかも一緒にWTPやTPTPも新バージョンがリリースされるとか?
丁度いまこれから開発に入るプロジェクトの
開発環境を整えてるところだったので、
早速試してみてよさげなら採用しようかと(^^


久々のメジャーバージョンアップなので楽しみ♪


んでもって
マージンFXのひまわり証券さん、ニンテンドーDS Lite欲しい!
でよろしくお願いしますw

Commons BeanUtilsのバグ?

PropertyUtilsのdescribeメソッドを実行すると
Beanのプロパティ一覧を取得できるけど、
ある条件でプロパティ値の大文字小文字がおかしくなるケースが。


普通なら「getHoge()」なら「hoge」が取得できると思うけど、
なぜか「getHOge()」だと「HOge」となっちゃう。
二文字目が大文字の場合は一文字目も大文字になるらしい。
どういう仕様なんだろうか。だいぶはまりました。ぐったり。

Dxo(Data eXchange Object)

id:higayasuoさんが考えられた概念。
プレゼンテーションモデルとドメインモデル間の
差異を吸収するための変換オブジェクト。


レイヤとモデル
レイヤモデルアーキテクチャ


今まではドメインモデルをプレゼンテーション層で利用してたけど、
ドメインモデルが変更されるとプレゼンテーション層まで
モロに影響を食らってました。
Dxoで一度ドメインモデルをプレゼンテーションモデルに
変換しておけばその辺の心配はなくなるかも。なるほど。

Singleton利用時の注意

以下のコードだとエラーになっちゃった。

public Class Hoge {
    private static Hoge instance_ = new Hoge();
    private static final Log log = LogFactory.getLog(Hoge.class);

    private Hoge() {
        if(log.isInfoEnabled()){
            log.info("インスタンス生成");
        }
    }

    public static Hoge getInstance() {
        return instance_;
    }
}

理由は、getInstance() が呼ばれる段階では
まだクラス変数の初期化が行われていないから。
instance_ が null でした。


Singletonの書き方が根本的にまずかったのね。
以下のようにすればOKでした。

public Class Hoge {
    private static Hoge instance_;
    private static final Log log = LogFactory.getLog(Hoge.class);

    private Hoge() {
        if(log.isInfoEnabled()){
            log.info("インスタンス生成");
        }
    }

    public static synchronized Hoge getInstance() {
        if(instance_ == null) instance_ = new Hoge();
        return instance_;
    }
}

たまにSingletonのサンプルでインスタンス
生成タイミングが上記のようになってるので注意。