CompletableFuture类的方法详解

CompletableFuture类是Java 8中新增的一个异步编程工具,它提供了一系列的方法来支持异步编程。下面对CompletableFuture类的方法进行详解:

  1. thenApply(Function<? super T, ? extends U> fn):将当前CompletableFuture的计算结果作为参数传入fn函数,并返回一个新的CompletableFuture对象,该对象的计算结果为fn函数的返回值。

  2. thenAccept(Consumer<? super T> action):当当前CompletableFuture计算完成后执行action函数,不会返回新的CompletableFuture对象。

  3. thenRun(Runnable action):当当前CompletableFuture计算完成后执行action函数,不会接受任何参数和返回值。

  4. thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn):将当前CompletableFutureother的计算结果作为参数传入fn函数,并返回一个新的CompletableFuture对象,该对象的计算结果为fn函数的返回值。

  5. thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action):当当前CompletableFutureother均计算完成后执行action函数,不会返回新的CompletableFuture对象。

  6. runAfterBoth(CompletionStage<?> other, Runnable action):当当前CompletableFutureother均计算完成后执行action函数,不会接受任何参数和返回值。

  7. applyToEither(CompletionStage<? extends T> other, Function<? super T, U> fn):当当前CompletableFutureother中任意一个计算完成时就将其计算结果作为参数传入fn函数,并返回一个新的CompletableFuture对象,该对象的计算结果为fn函数的返回值。

  8. acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action):当当前CompletableFutureother中任意一个计算完成时就执行action函数,不会返回新的CompletableFuture对象。

  9. runAfterEither(CompletionStage<?> other, Runnable action):当当前CompletableFutureother中任意一个计算完成时就执行action函数,不会接受任何参数和返回值。

  10. exceptionally(Function<Throwable, ? extends T> fn):当当前CompletableFuture出现异常时,将异常作为参数传入fn函数,该函数可以处理异常并返回一个新的计算结果。

  11. handle(BiFunction<? super T, Throwable, ? extends U> fn):当当前CompletableFuture计算完成时,将计算结果和异常(如果有的话)作为参数传入fn函数,并返回一个新的CompletableFuture对象,该对象的计算结果为fn函数的返回值。

  12. whenComplete(BiConsumer<? super T, ? super Throwable> action):当当前CompletableFuture计算完成时,将计算结果和异常(如果有的话)作为参数传入action函数,不会返回新的CompletableFuture对象。

  13. allOf(CompletableFuture<?>... cfs):返回一个新的CompletableFuture对象,当所有cfs中的CompletableFuture均计算完成时该对象的计算也完成。

  14. anyOf(CompletableFuture<?>... cfs):返回一个新的CompletableFuture对象,当cfs中的任意一个CompletableFuture计算完成时该对象的计算也完成。

文章作者: 烦恼的夏洛克
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 烦恼的夏洛克
Java
喜欢就支持一下吧