Ya, ya saya tahu banyak pertanyaan yang diajukan tentang topik ini. Tetapi saya masih tidak dapat menemukan solusi untuk masalah saya. Saya memiliki properti objek Java beranotasi. Misalnya Pelanggan, seperti pada contoh ini . Dan saya ingin representasi String darinya. Google merekomendasikan penggunaan JAXB untuk tujuan tersebut. Tetapi dalam semua contoh file XML yang dibuat dicetak ke file atau konsol, seperti ini:
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);
Tetapi saya harus menggunakan objek ini dan mengirim melalui jaringan dalam format XML. Jadi saya ingin mendapatkan String yang mewakili XML.
String xmlString = ...
sendOverNetwork(xmlString);
Bagaimana saya bisa melakukan ini?
StringWriter
sangat tua. Di bawah sampul itu menggunakan diStringBuffer
mana pendekatan yang jauh lebih cepat akan digunakanStringBuilder
tetapi itu tidak ada ketika StringWriter pertama kali dibuat. Karena itu, setiap panggilansw.toString()
menyiratkan sinkronisasi. Buruk jika Anda mencari kinerja.