然后接受和然后应用的区别

我正在阅读文档,并且描述是CompletableFuturethenAccept()

返回一个新的完成阶段,当此阶段正常完成时,将执行该阶段的结果作为所提供操作的参数。

和 for 是thenApply()

返回一个新的完成阶段,当此阶段正常完成时,将使用此阶段的结果作为所提供函数的参数来执行该阶段。

任何人都可以用一些简单的例子来解释两者之间的区别吗?


答案 1

您需要查看完整的方法签名:

CompletableFuture<Void>     thenAccept(Consumer<? super T> action)
<U> CompletableFuture<U>    thenApply(Function<? super T,? extends U> fn)

thenAccept取 a 并返回一个 CF,即不带值的 CF,仅承载完成状态。ConsumerT=Void

thenApply另一方面,采用 a 并返回一个带有函数返回值的 CF。Function


答案 2

thenApply返回当前阶段的结果,而不返回结果。thenAccept

阅读这篇文章: http://codeflex.co/java-multithreading-completablefuture-explained/

CompletableFuture methods


推荐