gpt4 book ai didi

java - 如何用 future 修复 java lambda 过滤器(缺少返回语句)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:51 25 4
gpt4 key购买 nike

如何解决java lambda filter future collection?

我有一个 future 的集合,我想过滤掉集合中返回的错误结果,但是使用lambda来报告(缺少返回语句),我想得到一个看起来像List<Map<String, Object>>的集合.我应该怎么做才能实现过滤?

List<Future<Map<String, Object>>> future = 
childIds.getChildOrder()
.stream()
.map(i -> service.submit(new some(i)))
.collect(Collectors.toList());

future.stream().filter(i -> {
try {
i.get().get("success").equals(Boolean.FALSE);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}).findAny().get().get();

enter image description here

Map<String, Object>结构看起来像这样{"success":"false", "msg":"I got error"}

最佳答案

您必须在所有执行路径中都有 return 语句:

future.stream().filter(i -> {
try {
return i.get().get("success").equals(Boolean.FALSE);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return false; // depending on what you wish to return in case of exception
}).findAny().get().get();

关于java - 如何用 future 修复 java lambda 过滤器(缺少返回语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864691/

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