我搜索并看到了许多类似扫描仪的问题,但我无法使我的解决方案工作
我希望使用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的示例。