【发布时间】:2015-08-25 17:09:33
【问题描述】:
抽象概念
我想从一组 Futures 中获取第一个满足给定谓词的值。
如果找到令人满意的值,则应取消所有其他期货。如果在所有 Futures 都返回后没有找到值,则应该终止执行(通过返回默认值或抛出异常)。
具体例子
public boolean isThereVacantHotelRooms(Set<URL> hotelApiUrls) {
// returns true if any provided server responds with a number larger than 0
}
我正在寻找一种在 Java 8 中实现上述内容的漂亮方法(外部库很好)。我已经尝试使用 CompletableFuture 以及 RxJava 来实现它,但我都觉得这个问题非常不习惯,我最终得到了很多丑陋的代码。
【问题讨论】:
标签: java functional-programming java-8 future rx-java