gpt4 book ai didi

java - 将 Java 8 Stream 与 ObjectMapper readValue 方法结合使用

转载 作者:行者123 更新时间:2023-11-29 07:32:27 26 4
gpt4 key购买 nike

我创建了一个方法,该方法遍历 String 列表并使用 ObjectMapper readValue 方法将其转换为 POJO 列表。

public static <T> List<T> mapPayloadListToPOJOList(List<String> payloadList, Class<T> pojo) throws IOException {
ObjectMapper mapper = new ObjectMapper();
List<T> pojoList = new ArrayList<>();
for (String payload : payloadList) {
T mapped = mapper.readValue(payload, pojo);
pojoList.add(mapped);
}
return pojoList;
}
  1. 有没有一种方法可以使用 Java 8 流来代替此实现?
  2. 你能给我一个解决方案吗?

我正在尝试使用 map ,但它不允许应用 Class<T>参数。

最佳答案

通过删除 for 循环并用流替换它可以很容易地完成,但是 lambda 表达式在处理检查异常时面临一些问题。

您可以使用单独的转换方法解决它并处理该方法中的异常(通过记录它或将其作为未经检查的异常重新抛出)。

    public static <T> List<T> mapPayloadListToPOJOList(List<String> payloadList, Class<T> pojo) {
return payloadList.stream()
.map(string -> convert(string, pojo))
.collect(Collectors.toList());
}

public static <T> T convert(String string, Class<T> pojo) {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(string, pojo);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}

关于java - 将 Java 8 Stream 与 ObjectMapper readValue 方法结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com