gpt4 book ai didi

java - 如何在 Java 8 中多次使用 thenCompose 的结果?

转载 作者:行者123 更新时间:2023-11-30 10:38:13 25 4
gpt4 key购买 nike

我有一系列 thenCompose电话,类似于

myObject.updateDB(payload)
.thenCompose(__ -> getUserID(payload.ID()))
.thenCompose(id -> getProfile(id))
.thenCompose(userProfile -> updateSomething(userProfile))
.thenCompose(__ -> notifyUser(id))
.thenAccept(__ -> doSomething())
.exceptionally(t -> doSomethingElse());

getUserID调用返回 CompletionStage<String>我将在下一次调用 getProfile 时使用它.我需要同样的 id再次为 notifyUser称呼。如何让它在那里可用? IDE正在显示

Cannot resolve symbol id.

最佳答案

您当前代码的问题在于,当您到达 .thenCompose(__ -> notifyUser(id)) 时,变量 id 不再在范围内.

在这种情况下,一个简单的解决方案是直接在 getProfile 返回的 CompletionStage 上调用多个 thenCompose:

myObject.updateDB(payload)
.thenCompose(__ -> getUserID(payload.ID()))
.thenCompose(id ->
getProfile(id)
.thenCompose(userProfile -> updateSomething(userProfile))
.thenCompose(__ -> notifyUser(id))
)
// rest of chain calls

关于java - 如何在 Java 8 中多次使用 thenCompose 的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39814460/

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