2009-03-13 2 views
2

私はJavaオブジェクトをマーシャリング/アンマーシャリングするためにCastorを使用しています。その1つにEnumMapが含まれています。 Castorマーシャリング/非マーシャルEnumMaps?いくつかのネストされたHashMapsを持つマッピングファイルがありますが、Castorを使用してEnumMapをプッシュしたことはありません。それが可能であれば、それはマッピングファイルを通してどのように行われますか?CastorにEnumMapをマーシャリング/アンマーシャリングさせることは可能ですか?

答えて

2

大きな問題の1つは、少なくともJava 1.5では、Enumを実際にシリアライズして復元できないということです。そして、私はJava 1.6でもないと思います。

enumはデフォルトで直列化またはXMLEncodedできないため、EnumMapを直列化できるかどうかは疑問です。 castor web pageから:あなたは常に タイプセーフな列挙クラスを処理するための独自の カスタムFieldHandlerを使用することができます

ながら、キャスター は、クラスのこれらのタイプを扱う に内蔵されたアプローチを持っています。 タイプセーフな列挙型クラスが public static valueOf(String) メソッドを持つ場合、Casterはそのメソッドを のように呼び出して、 列挙の適切なインスタンスが返されるようにします。注: は、 マッピングファイル のデフォルトの コンストラクタチェックを無効にする必要があります(詳細は を参照してください)。

これが機能しない場合は、自分で書かなければならないfield handler

これが少し助けてくれることを願っています。

関連する問題