gpt4 book ai didi

java - 来自 Callable 的 CompletableFuture?

转载 作者:搜寻专家 更新时间:2023-10-30 21:31:57 24 4
gpt4 key购买 nike

今天,我试验了 Java 8 中的"new"CompletableFuture,当我没有找到 runAsync(Callable) 方法时,我发现自己很困惑。我可以自己做,如下所示,但为什么这个(对我来说非常明显和有用的实用方法)丢失了? 是否遗漏了什么?

public static <T> CompletableFuture<T> asFuture(Callable<? extends T> callable, Executor executor) {
CompletableFuture<T> future = new CompletableFuture<>();
executor.execute(() -> {
try {
future.complete(callable.call());
} catch (Throwable t) {
future.completeExceptionally(t);
}
});
return future;
}

最佳答案

你应该使用 supplyAsync(Supplier<U>)

一般来说,lambda 表达式和检查异常不能很好地协同工作,而且 CompletableFuture通过设计避免检查异常。尽管在您的情况下应该没问题。

相关主题:

http://cs.oswego.edu/pipermail/concurrency-interest/2012-December/010486.html

http://cs.oswego.edu/pipermail/concurrency-interest/2014-August/012911.html

关于java - 来自 Callable 的 CompletableFuture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559707/

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