特定のタイプのコンバーターを設定するのは簡単です(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にアノテーションを付けないようにします。