Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jaxb解组器返回空hashmap,但将其设置为null_Java_Jaxb - Fatal编程技术网

Java jaxb解组器返回空hashmap,但将其设置为null

Java jaxb解组器返回空hashmap,但将其设置为null,java,jaxb,Java,Jaxb,我为HashMap编写了一个XMLAdapter。在解组一个空的hashmap(由一个空数组表示)时,我初始化一个空的hashmap并返回它,如代码中所示 @Override public Map<ServiceAttributeVO, String> unmarshal(ServiceAttributeVOXMLMap serviceAttributeMap) throws Exception { Map<ServiceAttributeVO, String>

我为HashMap编写了一个XMLAdapter。在解组一个空的hashmap(由一个空数组表示)时,我初始化一个空的hashmap并返回它,如代码中所示

@Override
public Map<ServiceAttributeVO, String> unmarshal(ServiceAttributeVOXMLMap serviceAttributeMap) throws Exception {
    Map<ServiceAttributeVO, String> r = new HashMap<ServiceAttributeVO, String>();

    if (serviceAttributeMap.mapElementList == null) { //if empty list, return the empty hashmap
        return r;
    }
    for (ServiceAttributeVOMapElement mapelement : serviceAttributeMap.mapElementList) {
        r.put(mapelement.key, mapelement.value);
    }
    return r;
}
@覆盖
公共映射解组(ServiceAttributeVOXMLMap serviceAttributeMap)引发异常{
Map r=新的HashMap();
如果(serviceAttributeMap.mapElementList==null){//如果列表为空,则返回空hashmap
返回r;
}
对于(ServiceAttributeMapElement mapelement:serviceAttributeMap.mapElementList){
r、 put(mapelement.key、mapelement.value);
}
返回r;
}
有人会认为结果对象将包含这个空hashmap,但实际上hashmap的值为null


怎么办?

在创建变量r之后还是返回变量r之后,变量r的值是否为null?我假设jaxb/jersey将使用r的值作为对象成员上setter的参数。在我返回变量r之前,它永远不会等于null,它将是一个(空)hashmap。但是,在解组后检查对象时,相应成员(应该是集合)的值等于null。您的变量r在创建后或返回后的值是否为null?我假设jaxb/jersey将使用r的值作为对象成员上的setter的参数。在我返回变量r之前,它永远不会等于null,它将是一个(空)hashmap。但是,在解组后检查对象时,相应成员(应为集合)的值等于null。