【发布时间】:2013-05-01 00:04:18
【问题描述】:
我尝试使用 JAXB 序列化 ArrayList,但失败了。这是因为 elementData 被标记为瞬态吗?
为什么 ArrayList 实现了 Serializable Inferface 并且它的数据是瞬态的?
我尝试序列化一个可序列化的 ArrayList:
JAXBElement<ArrayList> jaxbElement = new JAXBElement<ArrayList>(new QName(ArrayList.class.getSimpleName()), ArrayList.class, allEntities);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(jaxbElement, System.out);
如何通过 JAXB 做到这一点?
【问题讨论】:
-
所以它可以用于跨网络连接或其他JVM发送(即通过RMI)
-
您需要为ArrayList中对象的类实现Serializable。
-
ArrayList 中的对象确实实现了可序列化但使用 JAXB 我总是在 XML 输出中得到一个空的 ArrayList。
-
JAXB 序列化和 Java 内置的对象序列化是不同的概念。
-
那么如何在 JAXB 中使用 List 呢?
标签: java serializable transient