Vâng, vâng, tôi biết rằng rất nhiều câu hỏi đã được hỏi về chủ đề này. Nhưng tôi vẫn không thể tìm ra giải pháp cho vấn đề của mình. Tôi có một đối tượng Java được chú thích thuộc tính. Ví dụ Khách hàng, như trong ví dụ này . Và tôi muốn một biểu diễn chuỗi của nó. Google khuyến khích sử dụng JAXB cho các mục đích như vậy. Nhưng trong tất cả các ví dụ, tệp XML đã tạo được in ra tệp hoặc bảng điều khiển, như sau:
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);
Nhưng tôi phải sử dụng đối tượng này và gửi qua mạng ở định dạng XML. Vì vậy, tôi muốn lấy một Chuỗi đại diện cho XML.
String xmlString = ...
sendOverNetwork(xmlString);
Tôi có thể làm cái này như thế nào?
StringWriter
rất già. Dưới vỏ bọc, nó sử dụngStringBuffer
cách tiếp cận nhanh hơn nhiềuStringBuilder
nhưng điều đó đã không tồn tại khi StringWriter được tạo ra lần đầu tiên. Bởi vì điều này mỗi cuộc gọisw.toString()
ngụ ý đồng bộ hóa. Thật tệ nếu bạn đang tìm kiếm hiệu suất.