如何在Java中正确清除地图



我正在尝试从映射创建一个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() 

清洁哈希地图的方法

请参阅此处的更多

最新更新