0

現在、Serializable を実装していないオブジェクトの一部をシリアル化するために XStream を使用しています。オブジェクトが Serializable を実装している場合は Java のデフォルトのシリアライゼーションを使用し、そうでない場合は XML シリアライゼーションにフォールバックするように XStream に指示する方法はありますか? または、チェックするためにその上に単純なレイヤーを実装する必要がありますか?

ありがとう、ジェフ

4

1 に答える 1

1

これは良い考えではありません。Java シリアライゼーションはバイナリ表現であり、XML はテキスト表現です。

たとえばjava.lang.String、これは を実装Serializableしますが、XML 内で文字列をバイナリ BLOB としてシリアル化したくないことは明らかです。数値型などについても同様です。

XStream には、カスタム コンバーターを登録するためのメカニズムがあります。それを使用することをお勧めします。バイナリ データを XML ドキュメントにシリアル化する場合は、Base64 エンコーディングなど、何らかの方法でエンコードする必要があります。

于 2010-05-11T14:26:12.373 に答える