如何在Java中正确清除地图

时间:2019-07-03 12:42:34

标签: java hashmap jackson

我正在尝试从Map创建一个Java对象,然后将该对象转换为XML String。最后,我将发送带有后期请求的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消息,但旧数据也会按预期打印。如果我注释了这一行并清除了send函数末尾的数据,则不会打印任何消息。我不明白问题是什么。可能是xml的解析是异步发生的,并且在解析发生之前删除了数据吗?有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

this.reloadCanvasData();

清理哈希图的方法

引用here for more