हां, हां मुझे पता है कि इस विषय के बारे में बहुत सारे सवाल पूछे गए थे। लेकिन मुझे अभी भी अपनी समस्या का हल नहीं मिल रहा है। मेरे पास जावा एनोटेट की एक संपत्ति है। उदाहरण के लिए ग्राहक, जैसे इस उदाहरण में । और मुझे इसका एक स्ट्रिंग प्रतिनिधित्व चाहिए। Google ऐसे उद्देश्यों के लिए JAXB का उपयोग करने की पुष्टि करता है। लेकिन सभी उदाहरणों में बनाई गई XML फ़ाइल को फ़ाइल या कंसोल पर प्रिंट किया जाता है, जैसे:
File file = new File("C:\\file.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(customer, file);
jaxbMarshaller.marshal(customer, System.out);
लेकिन मुझे इस ऑब्जेक्ट का उपयोग करना होगा और एक्सएमएल प्रारूप में नेटवर्क पर भेजना होगा। इसलिए मैं एक स्ट्रिंग प्राप्त करना चाहता हूं जो XML का प्रतिनिधित्व करता है।
String xmlString = ...
sendOverNetwork(xmlString);
मैं यह कैसे कर सकता हूँ?
StringWriter
बहुत वृद्ध है। कवर के तहत यह उपयोग करता हैStringBuffer
जहां एक बहुत तेज़ दृष्टिकोण का उपयोग किया गया होगा,StringBuilder
लेकिन यह तब नहीं था जब स्ट्रिंगराइटर को पहली बार बनाया गया था। इस वजह से हर कॉल काsw.toString()
मतलब है सिंक्रोनाइज़ेशन। बुरा यदि आप प्रदर्शन की तलाश में हैं।