xstream-在自定义转换器中重用默认转换器

| 我正在使用xstream处理xml字符串,但是对象的某些字段在版本之间已更改,因此我正在实施 自定义转换器。下面列出了字段更改的摘要,只有前两个字段类型不同。
Field    type1      type2
a        short      String
b        String     Object
c        List       List
d        Object     Object
.
.
.
x        String     String
我的当前转换器实现为专门处理每个字段,这在unmarshal()方法中导致大量的“ else if”条件
package a.b.c.reports;

import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;

public class MyConverter implements Converter {

..

@Override
public Object unmarshal(HierarchicalStreamReader reader,UnmarshallingContext context) {

    while (reader.hasMoreChildren()) {
        reader.moveDown();
        if(reader.getNodeName().equals(\"a\"))
        {
            a = reader.getValue();
        }
        else if (reader.getNodeName().equals(\"b\")) 
        {
            b = (Object) context.convertAnother(reader, Object.class);
        } 
        else if(reader.getNodeName().equals(\"c\"))
        {
            a = reader.getValue();
        }
        ..
        ..
    }
}
有没有更聪明的方法可以将未更改类型的字段委派给默认的xstream转换器?     
已邀请:
这个问题有些陈旧,但是我还是花了一些时间来收集这些数据。 一个简单的解决方案是扩展
ReflectionConverter
而不是实现原始的
Converter
接口。 Stream2ѭ是XStream中的默认转换器,因此请覆盖所需的内容,
super
其他所有内容。然后,
new XStream().register
您的新转换器就可以了。     

要回复问题请先登录注册