加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – marshall with xjc创建了嵌套类

发布时间:2020-12-15 03:03:53 所属栏目:Java 来源:网络整理
导读:ProductInformation Context="GL" Assets Asset ID="assetID" UserTypeID="ID" Namename/Name Reference ClassificationID="id"/ Values Value AttributeID="ID"Value1/Value Value AttributeID="ID"Value2/Value MultiValue AttributeID="attributeID" Valu
<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生成单值属性(非列表).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读