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 を書くのを手伝ってくれませんか。