java - JAXB 将空列表映射到空集合?

标签 java web-services soap jaxb jax-ws

我有一个 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/

相关文章:

java - Java 中的这个表达式是什么(1 << 2)?

java - 实现多个通用接口(interface)

javascript - 二进制 XHR 结果到文件 blob - Jquery

web-services - 根据GlassFish领域对WS-Security UsernameToken进行身份验证可以得到“Authentication refused”

java - Spring WS 网络服务。使用 SAAJ 向响应添加附件 - 端点没有适配器

Java选择布局

java - 在布局中组合 2 个 ImageView

java - Android ksoap2 http 请求失败

java - 如何将java.util.Date转换为soap支持的日期格式 "yyyy-MM-dd' T'HH :mm:ss"with zone id

java - 如何从 SOAP 端点接收 xml 响应?