2014-12-03 46 views
0

我有一个Java对象是这样的:可能的序列化方法?

class A{ 
    public int id; 
    public double hours; 
    public int getMinutes(){ 
    return hours * 60; 
    } 
} 

我想序列化使用这种方式xstream.toXml方法的类;

A a = new A(); 
a.id = 10; 
a.hours = 2.5; 
XStream xstream = new XStream(new DomDriver()); 
xstream.autodetectAnnotations(true); 
xstream.toXML(a, writer); 

输出这个这个结果:

<A> 
<id>10</id> 
<minutes>150</minutes> 
</A> 

这可能吗?有一个特殊的XStream注释可以使用?我应该使用一些解决方法吗?

回答

1

我发现的唯一的解决方案是创建自己的转换器实现:

com.thoughtworks.xstream.converters.Converter 
+1

H1可以请你展示的解决方案如何实现方法的转换器? – coffeMug 2017-06-08 06:32:11

+1

当然!请看这里的xstream docs http://x-stream.github.io/converter-tutorial.html。关键点是PersonConverter类,该类实现了'Converter'并使用'xStream.registerConverter(new PersonConverter())注册它;'' – tyranitar 2017-06-09 09:07:20