2014-12-03 43 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