我有一个 webservice soap 服务,它将一个带有可选列表的对象作为 xml 参数:
@XmlElement(required = false)
private List<String> list;
public List<String> getList() { return list; }
如果客户端未提供列表标记,是否可以告诉 JAXB 始终返回/使用空集合而不是 null
列表?
或者我是否总是必须在服务器端为永远不应为 null 的列表定义一个惰性 getter(我希望始终如此)?
public List<String> getList() {
if (list == null) {
list = new ArrayList<String>();
}
return list;
}
最佳答案
如果您希望 XML 中的集合缺失对应于 Java 对象中的空 List
,您只需执行以下操作。
@XmlElement(required = false)
private List<String> list = new ArrayList<String>();
这将像该字段为 null
一样进行编码。使用 @XmlElementWrapper
注释时,null
和空 List
的编码方式唯一不同。
关于java - JAXB 将空列表映射到空集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483338/