我有一个webservice soap服务,它将带有可选列表的对象作为xml参数:
@XmlElement(required = false) private List<String> list; public List<String> getList() { return list; }@H_404_4@如果客户端没有提供list标签,是否可以告诉JAXB始终返回/使用空集合而不是空列表? @H_404_4@或者我是否总是必须在服务器端定义一个懒惰的getter以获取永远不会为null的列表(我更喜欢这种情况)?
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>();@H_404_4@这将编组,就像字段为null一样.使用@XmlElementWrapper批注时,如何编组null和空List只有区别. @H_404_4@> http://blog.bdoughan.com/2012/12/jaxb-representing-null-and-empty.html