2010-05-08 40 views
7

我有一個小問題,我正在寫一個保存函數的類。使XStream忽略一個特定的私有變量

我正在使用XStream(com.thoughtworks.xstream)使用DOMDriver將一個類序列化爲XML。

類看起來是這樣的:

public class World { 
    private Configuration config; 
    public World(Configuration config) { 
    this.config = config; 
    } 
} 

所以,這裏的問題是,我不希望序列化的世界時序列化配置,而我想打電話fromXml時候給XStream的預先構造配置實例()。

這裏的問題主要是類的設計,Configuration擁有對GUI類的私有引用,因此序列化配置意味着將整個應用程序與GUI完全序列化等等。而且這樣做很糟糕。

有沒有辦法指示XStream不要序列化私有字段配置,並且在負載供應XStream時使用配置實例?

問候丹尼爾

回答

10

由於文件說,在這裏:http://x-stream.github.io/annotations-tutorial.html(忽略字段),可以使用@XStreamOmitField標註爲「忽略」的字段。

+1

感謝您的回答。如本頁所述:僅當您調用'xstream.processAnnotations()'或'xstream.autodetectAnnotations(true)'時纔會處理註釋。 – mins 2014-10-12 10:11:51

+2

或者,'XStream.omitField'。 – amos 2016-01-12 21:31:03