Java 运行列表<;完全未来>;一个接一个

Java 运行列表<;完全未来>;一个接一个,java,completable-future,Java,Completable Future,因此,我有一个接口SetupTask,它只有一个方法run(),返回一个CompletableFuture。我有一个列表。我想运行第一个,完成后运行第二个,完成后运行第三个,依此类推。最初我尝试了CompletableFuture.allOf(),但这会使它们并行运行。您可以将所有这些任务一个接一个地链接起来,并一致地调用它们。当给定阶段完成时,此方法执行一些函数,返回一个CompletableFuture。我使用了CompletableFuture来演示它的样子 CompletableFutu

因此,我有一个接口
SetupTask
,它只有一个方法
run()
,返回一个
CompletableFuture
。我有一个
列表
。我想运行第一个,完成后运行第二个,完成后运行第三个,依此类推。最初我尝试了
CompletableFuture.allOf()
,但这会使它们并行运行。

您可以将所有这些任务一个接一个地链接起来,并一致地调用它们。当给定阶段完成时,此方法执行一些函数,返回一个
CompletableFuture
。我使用了
CompletableFuture
来演示它的样子

CompletableFuture<Void> current = CompletableFuture.completedFuture(null);
for (SetupTask task : tasks) {
    current = current.thenCompose(v -> task.run());
}
CompletableFuture current=CompletableFuture.completedFuture(null);
用于(设置任务:任务){
current=current.thenCompose(v->task.run());
}

A
CompletableFuture
不是您运行的东西,因此不清楚您在问什么。@SotiriosDelimanolis您是对的,所以我运行一个返回CompletableFuture的方法,我想在上一个完成后运行下一个。然后通过将第二个链接到CF的完成来触发第二个。您最初是否在循环中调用此方法?如果您演示如何创建该列表并调用该方法,那就太好了