gpt4 book ai didi

java - 扁平化 Java future

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:19 26 4
gpt4 key购买 nike

我有两个函数,每个函数都返回 CompletebleFuture<Boolean>实例,我想 or它们变成一个有序且可短路的 future 。

public CompletableFuture<Boolean> doA();
public CompletableFuture<Boolean> doB();

非 future 代码(即只返回 boolean 值)将只是

return doA() || doB();

当返回类型是 CompletableFuture<CompletableFuture<Boolean>> 时,我已经达到了这一点。实例。

doA.thenApply(b -> {
if (!b) {
return doB();
} else {
return CompletableFuture.completedFuture(b);
}
}

有没有办法把它弄平?或者,我可以通过任何方式使返回类型为 CompletablyFuture<Boolean>

编辑:请注意,能够使 future 短路是我想要的功能。我知道我随后会串行运行计算,但没关系。我不想想运行doB什么时候doA返回真。

最佳答案

只需使用方法 thenCompose 而不是 thenApply:

CompletableFuture<Boolean> result = doA().thenCompose(b -> b
? CompletableFuture.completedFuture(Boolean.TRUE) : doB());

关于java - 扁平化 Java future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23302200/

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