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生成单值属性(非列表). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |