对列表的右批注<String> JAXB



我搜索并看到了许多类似扫描仪的问题,但我无法使我的解决方案工作

我希望使用JAXB转换为XML。

我的问题是我有一个arraylist作为我的属性之一,我找不到正确的注释。

@XmlRootElement(name = "fighter")
public class fighter{
private int health;
private int energy;
private String name;
private List<String> abilities;
}

如果我删除了能力属性,则可以Marshall Unmarshall此类。

但是,当我尝试使用能力属性做到这一点时,它告诉我我有非法注释

@XmlElementWrapper(name = "abilitiesList")
@XmlElement(name = "ability")
public List<String> getAbilities(){
return abilities
}

我已经尝试了各种注释,但我只是没有遇到什么问题。

感谢您的帮助

尝试以下:

@XmlRootElement(name = "fighter")
@XmlAccessorType(XmlAccessType.FIELD)
public class Fighter{
    @XmlElement
    private int health;
    @XmlElement
    private int energy;
    @XmlElement
    private String name;
    @XmlElementWrapper(name = "abilitiesList")
    @XmlElement(name = "ability")
    private List<String> abilities;
}

您的获取器和设定器必须没有JAXB注释。

您的能力列表将像这样编组:

<abilitiesList>
    <ability></ability>
    <ability></ability>
</abilitiesList>

如果它不起作用,请提供您预期的XML的示例。

最新更新