9

为某种类型设置转换器很容易(http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html给出了一个例子):

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

我想注册一个转换器,但使用不同的元素名称。Converter 接口不提供元素的名称。

例如:如果元素名称(属性名称)为 in,则日期应转换为详细字符串,<longDate>但如果 in 则较短<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 回答