如何为某个元素附加XStream转换器?

Han*_*cht 9 java xml xstream

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

xstream.registerConverter(new SqlTimestampConverter());
xstream.registerConverter(new DynamicProxyConverter());
Run Code Online (Sandbox Code Playgroud)

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

例如:如果元素名称(属性名称)将在,则应将日期转换为详细字符串,如果在,则将其转换为<longDate>short <shortDate>.如何根据属性名称添加不同的转换器?类似于xstream.registerConverter(类classtype,propertyname,converter)之类的东西不存在,但会很好.

我知道我可以使用PrettyPrintWriter的专用版本,但这对于这个简单的工作似乎很有用.还有其他想法吗?

顺便说一句:我可以使用注释@XStreamConverter(XXX.class),但我不想使用注释.我希望我的bean没有任何注释.

Chr*_*oom 6

registerLocalConverter()而不是registerConverter().

xstream.registerLocalConverter( MyClazz.class, "property", new MyConverter() );
Run Code Online (Sandbox Code Playgroud)