我正在尝试从映射创建一个Java对象,然后将对象转换为XML字符串。最后,我将带有邮政请求的XML。在每个成功的请求之后,我必须清除数据,以便仅发布新数据。
private void send(){
try {
Map<String, List<Object>> data = getData();
Message dataMessage = Message
.serialize(data);
XmlMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(dataMessage);
Log.i("debug", "xml " + xml);
getData().clear(); //Clearing the data hier is problematic
}catch(Exception e){
Log.e("debug", "Error! " + e);
}
}
如果我不清除数据,则XML消息已正确记录,但也按预期打印了旧数据。如果我在发送函数末尾清除该行并清除数据,则不会打印任何消息。我不明白问题是什么。XML的解析可能是异步发生的,并且在解析发生之前已删除数据?您有解决方案吗?
您可以使用
{name of hash map}.clear()
清洁哈希地图的方法
请参阅此处的更多