1

…などのクラスがあります。

@XmlRootElement(name="Predicate")
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class Predicate implements Serializable {
}

@XmlRootElement(name="Predicates")
@XmlAccessorType(XmlAccessType.FIELD)
public class Predicates extends ArrayList<Predicate> implements Serializable {
}

述語はたまたま、他のいくつかの派生述語タイプの基本クラスです。ご覧のとおり、抽象的です。マーシャラーを介してシリアル化が発生すると、派生型の要素が作成されないように見えるため、アンマーシャリングで例外が発生します。

unable to create an instance of com.ballytech.paytable.Predicate

抽象基本型を含むコンテナ クラスを拡張する場合、継承に従って適切にシリアル化するにはどうすればよいですか。@XmlElementRef に関する例にあるように、抽象基本型を含むコンテナーであるクラス メンバーがある場合にこれを行うことができます。残念ながら、この特定の構文には互換性がないようです。

どんな助けでも大歓迎です。

4

1 に答える 1