分配为对象属性时未保留的数组元素

时间:2017-11-05 17:27:54

标签: java arrays oop hashmap

我创建了一个数组实例shortFacilitiesArray,通过添加额外的数组来修改数组中的一组现有值。但是,当我将实例数组设置为我的对象的属性时,所有数据都将丢失。我的代码主要如下:

if(hotelMap.containsKey(hotelID)) {

    JSONArray shortFacilitiesJSON = jsonObj.getJSONArray("shortFacilities"); 
    String[] shortFacilitiesArray = (hotelMap.get(hotelID)).getFacilitiesShort();
    shortFacilitiesArray = new String[shortFacilitiesJSON.length()];
    for (int i=0;i<shortFacilitiesJSON.length();i++) {
            shortFacilitiesArray[i] = shortFacilitiesJSON.getString(i);             
    }

    hotelMap.get(hotelID).setFacilitiesShort(shortFacilitiesArray);
}

例如: 如果我的shortFacilitiesArray是{“停车”,“吹风机”} ,在将其设置为地图中对象的数组后,它将输出null,null。

1 个答案:

答案 0 :(得分:1)

没有额外的上下文,我的赌注是shortFacilitiesJson.GetString()可能返回null,因此将最初填充的数组设置为空数组。您可以通过测试shortFacilitiesArray以字符串开头的方案来验证这一点。在这种情况下,在运行程序之后,shortFacilitiesArray应该包含除第一个元素之外的所有空值,第一个元素应该与之前的字符串相同。