JAXB没有可选集合
问题描述:
我正在写一个JAXB实体。JAXB没有可选集合
public class Person {
public Collection<String> getNames() {
if (names == null) {
names = new ArrayList<String>();
}
}
@XmlElement(required = true)
private int age;
@XmlElement(name = "name")
@XmlElementWrapper(required = true)
private Collection<String> names;
}
假设我们有以下实例。
final Person person = new Person();
person.setAge(18);
当我名帅这种情况下我
<person>
<age>18<age>
</person>
这是不是我的预期。
我打电话getNames()
只有后,我能得到
<person>
<age>18</age>
<games/>
<person>
这是正常的吗?
答
将名称设置为构造函数中的新ArrayList或字段定义中的静态分配。
+0
谢谢。我在'@ XmlElementWrapper'上用'nillable = true'属性解决了问题。 – 2012-03-13 03:42:16
我目前通过提供内部调用'getGames'的'beforeMarshal(Marshaller)'方法来解决这个问题。 – 2012-03-13 03:33:03
糟糕,在'@ XmlElementWrapper'上添加'nillable = true'使得相同的解决方案。我认为这样更好。 – 2012-03-13 03:35:30