gpt4 book ai didi

jaxb - 为什么 JAXB 不编码我自己的子类

转载 作者:行者123 更新时间:2023-12-01 05:34:28 29 4
gpt4 key购买 nike

我有一个可以成功编码的 jaxb 对象,它有一个列表对象,然后我创建一个如下所示的新对象

public class Sub extends SuperJAXBClass{

@Override
public List getList1(){
//override here
return ...;
}
}

然后是如下代码:SuperJAXBClass sjc=new Sub();编码(marshal)(sjc)

然后发现Sub中的List1没有编码成功。有谁知道为什么会这样?如何解决?

最佳答案

您可以执行以下操作之一:

选项 #1 - @XmlSeeAlso 注释

JAXB (JSR-222) 实现不能使用 Java 反射来确定所有可能的子类。作为解决方法,您可以使用 @XmlSeeAlso 注释对父类(super class)进行注释,为 JAXB 提供对子类的引用。

@XmlSeeAlso({Sub.class})
public class SuperJAXBClass {
}

选项 #2 - 创建 JAXBContext 时传递子类

如果您在创建 JAXBContext 时包含子类,那么 JAXB 实现将知道它。当传递子类时,还会创建父类(super class)的元数据。

JAXBContext.newInstance(Sub.class);

关于jaxb - 为什么 JAXB 不编码我自己的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9219355/

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