我有期货清单
List<Future<Boolean>> futures = service.invokeAll( Arrays.asList( callable1, callable2 ));
我需要的是一种获取结果列表的方法
可以提供Java解决方案吗?
类似于
whenAll()...
最佳答案
您所追求的是这样的allMatch()
方法:
boolean result = futures.stream().allMatch(booleanFuture -> {
try
{
return booleanFuture.get();
}
catch (InterruptedException | ExecutionException e)
{
throw new RuntimeException(e);
}
});
如果您真的想要一个结果列表,那么您将使用
map()
像这样:List<Boolean> results = futures.stream().map(booleanFuture -> {
try
{
return booleanFuture.get();
}
catch (InterruptedException | ExecutionException e)
{
throw new RuntimeException(e);
}
}).collect(Collectors.toList());