gpt4 book ai didi

kotlin - Kotlin 中 CompletableFuture 异常方法的使用

转载 作者:行者123 更新时间:2023-12-04 13:42:38 25 4
gpt4 key购买 nike

我正在尝试处理 Kotlin 中的 CompletableFuture 异常,但我无法弄清楚如何提供适当的参数。所以,例如,我有:
CompletableFuture.runAsync { "sr" }
.exceptionally{e -> {}}

但随后编译器提示 Cannot infer type parameter T .

我该如何解决?

最佳答案

一个相当棘手的案例,由于一些 Kotlin 魔法而变得棘手:)

您的问题的直接解决方案是以下代码:

CompletableFuture.runAsync {"sr"}
.exceptionally({e -> null})

详细解释在这里:
runAsync方法接受 Runnable这意味着执行后它将返回 Void .传递给 exceptionally 的函数方法必须匹配 CompletableFuture 的泛型参数所以在这种特殊情况下,你需要通过返回 null 来帮助编译器明确地。

因此,以下内容将毫无问题地编译:
CompletableFuture.runAsync {"sr"}
.exceptionally({null})

CompletableFuture.runAsync {}
.exceptionally({null})

在第一种情况下,“sr”字符串将被简单地忽略并且不会返回,因为 runAsync接受 Runnable .

你可能想做这样的事情:
 CompletableFuture.supplyAsync {"sr"}
.exceptionally({"sr_exceptional"})

或者:
CompletableFuture.supplyAsync {"sr"}
.exceptionally({e -> "sr_exceptional"})

关于kotlin - Kotlin 中 CompletableFuture 异常方法的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40593837/

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