Как правильно очистить карту в Java - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь создать объект 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 происходит асинхронно и данные удаляются до того, как синтаксический анализ выполняется? Есть ли у вас решение?

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете использовать метод

{name of hash map}.clear() 

для очистки хэш-карты

Для получения дополнительной информации 1008 * см. Здесь

...