JAXB非可选集合

JAXB非可选集合,jaxb,Jaxb,我正在编写一个JAXB实体 公共类人物{ 公共集合getNames(){ 如果(名称==null){ 名称=新的ArrayList(); } } @XmlElement(必需=true) 私人互联网; @xmlement(name=“name”) @XmlElementWrapper(必需=true) 私人收藏名称; } 假设我们有下面的例子 final Person=new Person(); 人。设置(18); 当我封送这个实例时,我得到了 18 这不是我所期望的 只有在调用getN

我正在编写一个JAXB实体

公共类人物{
公共集合getNames(){
如果(名称==null){
名称=新的ArrayList();
}
}
@XmlElement(必需=true)
私人互联网;
@xmlement(name=“name”)
@XmlElementWrapper(必需=true)
私人收藏名称;
}
假设我们有下面的例子

final Person=new Person();
人。设置(18);
当我封送这个实例时,我得到了


18
这不是我所期望的

只有在调用
getNames()
之后,我才能获得


18

这正常吗?

在构造函数中为新的ArrayList设置名称,或在字段定义中设置静态赋值。

在构造函数中为新的ArrayList设置名称,或在字段定义中设置静态赋值。

我目前通过在封送(封送)前提供
来解决此问题
方法,该方法在内部调用
getGames
。我认为这样更好。我目前正在通过提供
beforemashall(Marshaller)
方法来解决这个问题,该方法在内部调用
getGames
。哎呀,在
@xmlementwrapper
上添加
nillable=true
可以得到相同的解决方案。我觉得这样更好。谢谢。我用
@xmlementwrapper
上的
nillable=true
属性解决了这个问题。谢谢。我用
@xmlementwrapper
上的
nillable=true
属性解决了这个问题。