java – marshall with xjc创建了嵌套类

前端之家收集整理的这篇文章主要介绍了java – marshall with xjc创建了嵌套类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<ProductInformation Context="GL">
 <Assets>
  <Asset ID="assetID" UserTypeID="ID">
    <Name>name</Name>
    <Reference ClassificationID="id"/>
      <Values>
        <Value AttributeID="ID">Value1</Value>
        <Value AttributeID="ID">Value2</Value>
          <MultiValue AttributeID="attributeID">
             <Value>value3a</Value>
             <Value>value3b</Value>
          </MultiValue>
     </Values>
   </Asset>
 </Assets>

 <Products>....</Products>

</ProductInformation>

我使用xml-> xsd和xjc从中创建类.

现在我想创建我的ProductInformation对象,并对其进行编组.

我的问题是xjc创建3个类和一个objectfactory,以及ProductInformation中的一些嵌套类.当我看到可用的方法时,我主要看到的是getter而不是setter.

“资产”类没有像这样的方法;

asset.setValues(List<Value> values)

我最后写了这样有趣的代码;

ProductInformation.Assets.Asset.Values.MultiValue multivalue=new ProductInformation.Assets.Asset.Values.MultiValue();

Jaxb这是正常的吗?

解决方法

JAXB通常处理多值属性的方式是为List< Whatever>提供一个getter而不是setter,它返回一个可变列表 – 你应该调用getter来检索一个初始为空的列表,然后创建成员此列表的对象以正常方式使用new并将它们直接添加到列表中.您可以使用与顶级类完全相同的方式创建静态嵌套类.

应该使用getter和setter生成单值属性(非列表).

原文链接:https://www.f2er.com/java/128679.html

猜你在找的Java相关文章