2016-06-10 40 views
0

让有下面的类:JAXB - 我们应该结合教学班,@XmlSeeAlso如果他们是同一类的字段

@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中的所有绑定类(这是SomeClassOne和SomeClassTwo) - @XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})

+0

为什么你只是不写单元测试并检查它? – user1516873

回答

1

JAXB将自动绑定包含任何映射类该类用于实例化JAXBContext

@XmlSeeAlso用于绑定子类。

@XmlSeeAlso文档的一个例子:

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

这使一个JAXBContext.newInstance(Animal.class)正确结合DogCat类,尽管它们从未在Animal类使用的事实。

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

相关问题