java – CompletionStage:为什么在CompletableFuture中定义allOf或anyOf

我有一个使用接口
CompletionStage的框架,我很好奇为什么在那里定义了
CompletableFuture中找到的辅助方法anyOf或allOf.

看起来他们应该在接口而不是实现上运行?

到目前为止,我对CompletionStage界面非常不满意.
是否还有其他兼容CompletionStage的Java库,但有人建议使用不同的超集界面?

或者也许某些库使用其他帮助方法编写,以便与CompletionStage一起使用?

最佳答案 如果你想要的是一个为CompletionStage类型的对象提供相同的anyOf和allOf功能的方法,你可以简单地求助于
toCompletableFuture

public static CompletionStage<Object> anyOf(CompletionStage<?>... css) {
    return CompletableFuture.anyOf(Arrays.stream(css)
        .map(CompletionStage::toCompletableFuture).toArray(CompletableFuture[]::new));
}
public static CompletionStage<Void> allOf(CompletionStage<?>... css) {
    return CompletableFuture.allOf(Arrays.stream(css)
        .map(CompletionStage::toCompletableFuture).toArray(CompletableFuture[]::new));
}
点赞