我有一个带有一些值的Map,我需要在其中添加一个新条目,问题是put"丢失"对象,我只有新的密钥。
这是代码
public void addSeries(SerieInterface serieObject)
{
Map<String, Object> series = this.getSeries();
if (series == null)
series = new HashMap<String, Object>();
series.put(serieObject.getSerie_instance(), serieObject);
this.setSeries(series);
}
&#34;系列&#34;是现有的map(是一个BasicDBObject,它扩展了LinkedHashMap),我需要在其中添加serieObject对象(一个带有两个扩展JSONObject的String字段的Object); 在&#34; put&#34;之后命令,我在地图中有旧的两个对象,而新的只有&#34;键&#34; (我只有{&#34; Key&#34;:{}}) (我在debug中检查过serieObject,它有所有字段)
有关原因的任何建议吗?为什么对象&#34;价值&#34;地图丢失了? 我没有任何类型的例外,我只是失去了价值......
感谢您的帮助,抱歉我的英语不完美
答案 0 :(得分:0)
Luca,请在测试结束时更清楚地描述您在结构中的内容,{"Key" : { } }
并不意味着什么样的对象是{}值?
查看这个series.put(serieObject.getSerie_instance(), serieObject);
serieObject似乎至少有一个奇怪的命名为getSerie_instance的密钥而且它不是null。
另外,还有其他一些事情:
1)this.getSeries(),如果这个Map是直接使用的类属性,如果只返回值,则不要使用setter / getter。
2)if(series == null),为什么不在类的构造函数中初始化这个Map?这样更干净。