Jaxb 带有@XmlElements的MOXy空集合不';工作

Jaxb 带有@XmlElements的MOXy空集合不';工作,jaxb,moxy,Jaxb,Moxy,我在这里创建了一张记录单,解释了我遇到的问题 本质上,如果我们有一个带有@xmlementwrapper的@xmlementwrapper,那么在取消组串时,如果XML元素为空,则不会调用JAXB对象上的setter来设置空集合。这适用于jaxbri 示例方法和注释定义: @XmlElementWrapper(nillable=true) @XmlElements(value = {@XmlElement(name="subelement", type=SubElement.class), @X

我在这里创建了一张记录单,解释了我遇到的问题

本质上,如果我们有一个带有@xmlementwrapper的@xmlementwrapper,那么在取消组串时,如果XML元素为空,则不会调用JAXB对象上的setter来设置空集合。这适用于jaxbri

示例方法和注释定义:

@XmlElementWrapper(nillable=true)
@XmlElements(value = {@XmlElement(name="subelement", type=SubElement.class), @XmlElement(name="subsubelemenet", type=SubTypeOfSubElement.class)})
public List<SubElement> getSubElementCollectionWithSubType() {
    return subElementCollectionWithSubType;
}
@xmlementwrapper(nillable=true)
@xmlements(value={@xmlement(name=“subelement”,type=subelement.class),@xmlement(name=“subsubelemenet”,type=subsubelement.class)}
公共列表getSubElementCollectionWithSubType(){
返回subElementCollectionWithSubType;
}

如果除了一起删除@XmlElements之外还有其他解决方法,我将非常高兴听到

JAXB不在列表上使用setter,它通常调用get并将其附加到列表中,因此如果列表为null,则getter应该创建一个列表

那将是一种奇怪的行为。根据这个封送示例,空集合和空集合被正确封送到XML,因此我假设反封送以相同的方式工作:。好吧,这是基于我自己的经验,我为列表定制了具有副作用的setter,在一次jaxb udpate之后,它们不再被调用,因为jaxb只使用getter来附加到集合中。看到或