2010-05-08 13 views
7

मुझे कक्षा के साथ एक छोटी सी समस्या है जिसके लिए मैं वर्तमान में एक सेव फ़ंक्शन लिख रहा हूं।एक्सस्ट्रीम एक विशिष्ट निजी चर को अनदेखा करें

मैं XStream (com.thoughtworks.xstream) का उपयोग कर रहा हूं ताकि डीओएमडीवर का उपयोग कर एक्सएमएल में कक्षा को क्रमबद्ध किया जा सके।

वर्ग इस तरह दिखता है:

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

तो, यहां मुद्दा यह है कि मैं जब दुनिया serializing विन्यास को क्रमानुसार नहीं करना चाहता, बल्कि मैं जब fromXml बुला Xstream एक preconstructed विन्यास उदाहरण देना चाहते हैं()।

समस्या मुख्य रूप से कक्षा डिज़ाइन है, कॉन्फ़िगरेशन जीयूआई कक्षाओं के लिए एक निजी संदर्भ रखता है और इसलिए सीरियलाइजिंग कॉन्फ़िगरेशन का अर्थ है पूरे आवेदन को पूरी तरह से जीयूआई आदि के साथ क्रमबद्ध करना .. और यह बहुत बुरा है।

क्या XStream को निजी फ़ील्ड कॉन्फ़िगरेशन को क्रमबद्ध करने के लिए निर्देश देने का कोई तरीका नहीं है, और लोड आपूर्ति XStream पर कॉन्फ़िगरेशन उदाहरण के साथ उपयोग करने के लिए?

बधाई डैनियल

उत्तर

10

प्रलेखन के रूप में यहाँ का कहना है: http://x-stream.github.io/annotations-tutorial.html (छोड़ते हुए फील्ड्स) आप @XStreamOmitField एनोटेशन का उपयोग कर सकते क्षेत्रों को "अनदेखा" करने के लिए।

+1

इस उत्तर के लिए धन्यवाद। जैसा कि इस पृष्ठ में बताया गया है: एनोटेशन केवल तभी संसाधित किए जाएंगे जब आप 'xstream.processAnnotations() 'या' xstream.autodetectAnnotations (true)' कहें। – mins

+2

वैकल्पिक रूप से, 'XStream.omitField'। – amos

संबंधित मुद्दे