gpt4 book ai didi

javax 和 @XmlElementRef 以及扩展容器

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:40 28 4
gpt4 key购买 nike

我有一些类(class),例如...

@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 的示例中所示。不幸的是,这个特定的语法似乎不兼容。

如有任何帮助,我们将不胜感激。

最佳答案

显然解决方案是在JAXBContext.newInstance(...) 参数。

JAXBContext.newInstance(BinaryPredicate.class);

关于javax 和 @XmlElementRef 以及扩展容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17117822/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com