Hier ist der Anwendungsfall:Warum wird meine ArrayList nicht mit JAXB gemarshallt?
@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"));
}
}
Dann ich tue:
JAXBContext ctx = JAXBContext.newInstance(Books.class);
Marshaller msh = ctx.createMarshaller();
msh.marshal(new Books(), System.out);
Das ist, was ich sehe:
<?xml version="1.0"?>
<books/>
Wo sind meine Bücher? :)
Sie können 'ArrayList' nicht marshallen (da andere Sprachen ArrayList nicht kennen), aber Sie können' List' marshallen. –
Der Elite Gentleman - Ich bin mir nicht sicher, was Sie meinen. Im Gegensatz zu anderen XML-Binding- und Serialisierungsbibliotheken enthält JAXB nichts XML-spezifisches in der Ausgabe. –
Vincenzo - Brauchen Sie Bücher, um ArrayList zu erweitern? Der übliche Ansatz besteht darin, dass die Books-Klasse über eine ArrayList-Eigenschaft verfügt. –