9

特定のタイプのコンバーターを設定するのは簡単です(http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.htmlに例があります):

xstream.registerConverter(new SqlTimestampConverter());
xstream.registerConverter(new DynamicProxyConverter());

コンバーターを登録したいのですが、要素名が異なります。Converterインターフェースは、要素の名前を提供しません。

例:要素名(プロパティ名)がである場合は日付を詳細な文字列に変換する必要がありますが、である<longDate>場合は短くする必要があり<shortDate>ます。プロパティ名に基づいて異なるコンバーターを追加するにはどうすればよいですか?xstream.registerConverter(Class classtype、propertyname、converter)のようなものは存在しませんでしたが、いいでしょう。

PrettyPrintWriterの特殊なバージョンを使用できることは知っていますが、この単純な作業ではそれで十分に機能するようです。他のアイデアはありますか?

ところで:アノテーション@XStreamConverter(XXX.class)を使用することはできますが、アノテーションは使用したくありません。Beanにアノテーションを付けないようにします。

4

1 に答える 1

6

registerLocalConverter()の代わりに使用しregisterConverter()ます。

xstream.registerLocalConverter( MyClazz.class, "property", new MyConverter() );
于 2010-08-18T08:44:37.790 に答える