我如何使用ObjectReader(ObjectReader的单个实例)重构以下代码

private MessageStructure parseSQSMessageToMessageStructure(final String queueMessage)
    throws IOException, ObjectMapperException {

    JsonNode messageAsJSON = objectMapper.readTree(queueMessage);
    JsonNode messageAsJSONKey = messageAsJSON.get(MESSAGE_JSON_KEY);
    return objectMapper.readValue(messageAsJSONKey.textValue(), MessageStructure.class);
}

最佳答案

正如@shmosel所说,您的问题与标题不符。

如果希望将ObjectMapper的实例替换为ObjectReader,请替换以下行。

来自:

return objectMapper.readValue(messageAsJSONKey.textValue(), MessageStructure.class);


成为 :

return objectReader.readValue(messageAsJSONKey.textValue(), MessageStructure.class);


上面的代码片段假定objectReaderObjectReader类的实例。

以下是我从Java文档的ObjectReader获得的有关其性能的信息。


  使用“突变工厂”模式,以便实例是不变的(并且
  因此完全线程安全,无需外部同步);新
  实例是为不同的配置构造的。执行个体
  最初是由{@link ObjectMapper}构建的,可以重复使用,
  共享,缓存;既因为线程安全,又因为实例
  相对较轻。


希望这可以帮助!

10-06 05:33