【发布时间】:2014-05-14 12:42:06
【问题描述】:
我想用 wsimport 工具生成的 XMLEncoder 类进行序列化。 有许多 ArrayOfXXXXXX 类具有以下结构:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfSitejournal", propOrder = {
"item"
})
public class ArrayOfSitejournal
implements Serializable
{
protected List<Journal> item;
public List<Journal> getItem() {
if (item == null) {
item = new ArrayList<Journal>();
}
return this.item;
}
}
当我序列化 ArrayOfSitejournal 类时,我得到以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_45" class="java.beans.XMLDecoder">
<object class="ArrayOfSitejournal"/>
</java>
没有 setItem() 方法,所以 item 属性没有被序列化。我的问题是:如何将整个 ArrayOfSitejournal 对象与项目成员一起序列化?
我不能更改这个类的代码,因为它是生成的。
我知道我可以编写 PersistenceDelegate 来自定义序列化。但是要像这样反序列化它的调用是必要的:
arrayOfSitejournal.getItem().add(journal)
你能帮我写这样的 PersistenceDelegate。
【问题讨论】:
标签: java serialization wsimport xmlencoder