Đây là trường hợp sử dụng:Tại sao ArrayList của tôi không phải là marshalled với JAXB?
@XmlRootElement
public class Book {
public String title;
public Book(String t) {
this.title = t;
}
}
@XmlRootElement
@XmlSeeAlso({Book.class})
public class Books extends ArrayList<Book> {
public Books() {
this.add(new Book("The Sign of the Four"));
}
}
Sau đó, tôi đang làm:
JAXBContext ctx = JAXBContext.newInstance(Books.class);
Marshaller msh = ctx.createMarshaller();
msh.marshal(new Books(), System.out);
Đây là những gì tôi thấy:
<?xml version="1.0"?>
<books/>
Đâu là những cuốn sách của tôi? :)
Bạn không thể marshall 'ArrayList' (như các ngôn ngữ khác không biết ArrayList) nhưng bạn có thể marshall' List'. –
The Elite Gentleman - Tôi không chắc ý bạn là gì. Không giống như các thư viện liên kết và tuần tự hóa XML khác, JAXB không bao gồm bất kỳ thứ gì XML cụ thể trong đầu ra. –
Vincenzo - Bạn có cần mở rộng Sách ArrayList không? Cách tiếp cận chung là dành cho lớp Books để có một thuộc tính ArrayList. –