2010-05-08 3 views
7

Ho un piccolo problema con una classe in cui sto attualmente scrivendo una funzione di salvataggio per.Rendi XStream ignora una variabile privata specifica

Sto usando XStream (com.thoughtworks.xstream) per serializzare una classe in XML utilizzando il DOMDriver.

La classe si presenta così:

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

Quindi, il problema qui è che io non voglio per serializzare configurazione durante la serializzazione mondo, piuttosto mi piacerebbe dare xstream un'istanza di configurazione precostruita al momento della chiamata fromXml().

Il problema qui è principalmente la progettazione della classe, la configurazione mantiene un riferimento privato alle classi della GUI e pertanto serializzare la configurazione significa serializzare l'intera applicazione completamente con la GUI, ecc. E questo è un po 'brutto.

C'è un modo per indicare a XStream di non serializzare la configurazione del campo privato e, al momento del caricamento, XStream con un'istanza di configurazione da utilizzare?

saluti Daniel

risposta

10

Come documentazione dice qui: http://x-stream.github.io/annotations-tutorial.html (omettendo campi) è possibile utilizzare @XStreamOmitField annotazione "ignora" campi.

+1

Grazie per questa risposta. Come spiegato in questa pagina: le annotazioni verranno elaborate solo se chiami 'xstream.processAnnotations()' o 'xstream.autodetectAnnotations (true)'. – mins

+2

In alternativa, 'XStream.omitField'. – amos

Problemi correlati