我有一个对象Links,它有List的成员,而Link只有属性,但解析列表有一些错误-它被创建为空。
在下面的测试中,links.getLinks()
返回空列表。什么好主意吗?
XML的例子:
<links>
<link x="1" y="2" />
<link x="3" y="4" />
</links>
Java
@JacksonXmlRootElement(localName="links")
public class Links extends BaseAmebaElement {
@JacksonXmlProperty(localName="link")
//@JacksonXmlElementWrapper(localName="link")
private Collection<Link> links;
public Collection<Link> getLinks() {
return links;
}
public void setLinks(Collection<Link> links) {
this.links = links;
}
}
…
@JacksonXmlRootElement(localName="link")
public class Link {
@JacksonXmlProperty(localName="x", isAttribute=true)
private String href;
@JacksonXmlProperty(localName="y", isAttribute=true)
private String rel;
…
XmlMapper xmlMapper = new XmlMapper ();
try {
Links links = xmlMapper.readValue(input, Links.class);
assertNotNull(links);
assertNotNull(links.getLinks());
assertEquals(2, links.getLinks().size());
} catch (Throwable e) {
fail(e.getMessage());
}
我可以得到一些变化后的结果。但是,它可以取出第一行(它是空的)。我不知道为什么。
@JacksonXmlElementWrapper(useWrapping=false)
@JacksonXmlProperty(localName="link")
private Collection<Link> links;
更新:这应该是2.1.4版本中的一个bug。