gpt4 book ai didi

java - JAXB - 如果类是同一类的字段,我们是否应该使用 @XmlSeeAlso 绑定(bind)类

转载 作者:行者123 更新时间:2023-11-30 02:54:11 27 4
gpt4 key购买 nike

让我们学习以下类(class):

@XmlType(name = "TestClass")
//@XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})
public class TestClass{

@XmlElement
private SomeClassOne someClassOne;

@XmlElement
private SomeClassTwo someClassTwo;

}

我尝试使用上下文和 Marshaller 将对象序列化为 XML。我们有以下声明

context = JAXBContext.newInstance(TestClass.class);

问题是:我是否应该在 @XmlSeeAlso 中描述 TestClass 的所有绑定(bind)类(SomeClassOne 和 SomeClassTwo) - @XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})

最佳答案

JAXB 将自动绑定(bind)用于实例化 JAXBContext 的类所包含的任何映射类。

@XmlSeeAlso 用于绑定(bind)子类。

来自 @XmlSeeAlso 的示例文档:

@XmlSeeAlso({Dog.class,Cat.class})
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}

这使得 JAXBContext.newInstance(Animal.class) 能够正确绑定(bind) DogCat 类,尽管事实上它们是从未在 Animal 类中使用过。

因此,在您的示例中,没有必要使用 @XmlSeeAlso 绑定(bind) SomeClassOneSomeClassTwo 类。

关于java - JAXB - 如果类是同一类的字段,我们是否应该使用 @XmlSeeAlso 绑定(bind)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749690/

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