JAXB可以初始化基类中的值吗?

fbl*_*fbl 6 java xml jaxb xml-parsing

我正在研究Scala项目,我们希望使用XML来使用JAXB(而不是Spring)初始化我们的对象.我有一个层次结构,在子类中添加更多的数据成员.一个简单的例子看起来像这样:

class Animal
{
   string name
}

class Cat extends Animal
{
   int numLives
}

class Dog extends Animal
{
   bool hasSpots
}
Run Code Online (Sandbox Code Playgroud)

我希望能够从XML块初始化动物列表,如下所示:

<Animals>
   <Cat>
      <name>Garfield</name>
      <numLives>9</numLives>
   </Cat>
   <Dog>
      <name>Odie</name>
      <hasSpots>false</hasSpots>
   </Dog>
</Animals>
Run Code Online (Sandbox Code Playgroud)

我们如何在类中设置注释以便能够处理这个?

bel*_*her 0

在这种情况下,我更喜欢创建 XSD 架构并从中生成代码,这样您就安全了。但要回答你的问题,是的,你可以。注释是 XMLElement、XMLAttribute、XMLRootElement。