让我们有以下课程:
@XmlType(name = "TestClass")
//@XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})
public class TestClass{
@XmlElement
private SomeClassOne someClassOne;
@XmlElement
private SomeClassTwo someClassTwo;
}
我尝试使用context和Marshaller将对象序列化为XML。我们有以下声明
context = JAXBContext.newInstance(TestClass.class);
问题是:我是否应该在@XmlSeeAlso中描述TestClass的所有绑定类(SomeClassOne和SomeClassTwo) - @XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})
答案 0 :(得分:2)
JAXB
将自动绑定用于实例化 JAXBContext 的类所包含的任何映射类。
@XmlSeeAlso
用于绑定子类。
来自@XmlSeeAlso
文档的示例:
@XmlSeeAlso({Dog.class,Cat.class})
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}
这使JAXBContext.newInstance(Animal.class)
能够正确绑定Dog
和Cat
类,尽管它们从未在Animal
类中使用过。
因此,在您的示例中,没有必要使用@XmlSeeAlso
来绑定SomeClassOne
和SomeClassTwo
类。