Java CompletableFuture和多个布尔返回方法-如何返回第一个FALSE或如何等到全部完成后返回TRUE

问题描述 投票:0回答:1

我有点奇怪的情况,似乎不允许这种钉子钉入任何已广泛建立的CompletableFuture孔中。

  • 在评估返回的布尔值的主要方法中,我希望允许对三种不同方法的调用以异步方式完成。这三个方法均可返回TRUE或FALSE。
  • 如果any返回FALSE,我希望评估结果除去其余部分,然后简单地返回该FALSE值。关键是,它可以是三个中的any,不一定是第一个。
  • 但最重要的是,我需要求值以等待all all]返回TRUE,然后才实际返回TRUE。这是至关重要
  • 现在,我正在使用基本的&&链进行此评估:

public boolean evaluateChecks() {
    return checkOne().Join() && checkTwo().Join() && checkThree().Join();
}

然而,它仍然按照特定的顺序执行操作-如果checkThree()是第一个返回FALSE值的对象,由于&&的方式,它仍然必须等到前两个提供了它们的值之后才能进行评估。失败的作品。

现在,所有这三种方法都返回CompletableFuture<Boolean>,但是我可以毫不费力地将它们还原为普通方法,以便在评估它们的主要方法中运行CompletableFuture

我看过quite a few examples,但似乎没有一个可以为我提供所需的功能。

我有点奇怪的情况,似乎不允许此钉固定在任何已广泛建立的CompletableFuture孔中。在评估返回的布尔值的主要方法中,我...

java completable-future
1个回答
0
投票

您可以将它们全部收集到List中并使用stream.allMatch,当任何一个值为false时,它将丢弃评估

© www.soinside.com 2019 - 2024. All rights reserved.