面试题答案
一键面试thenApply
- 方法说明:接收一个Function类型的参数,该函数会处理上一个CompletableFuture任务的返回值,并返回一个新的CompletableFuture,新的CompletableFuture的结果就是Function处理后的返回值。
- 适用场景:当需要对异步任务的结果进行转换操作时使用。例如,异步从数据库读取用户ID,然后通过这个ID去查询用户详细信息,将ID转换为用户详细信息对象。
thenAccept
- 方法说明:接收一个Consumer类型的参数,该消费者会处理上一个CompletableFuture任务的返回值,但不会返回新的结果,返回的CompletableFuture的结果为Void。
- 适用场景:当只需要对异步任务的结果进行消费处理,而不需要返回新的结果时使用。比如,异步下载文件完成后,对文件进行保存操作,不需要返回保存操作的额外结果。
thenRun
- 方法说明:接收一个Runnable类型的参数,该Runnable没有参数,它会在当前CompletableFuture任务完成后执行,同样返回的CompletableFuture结果为Void。
- 适用场景:当某个异步任务完成后,需要执行另外一个无参数且无返回值的操作时使用。例如,异步计算完成后,记录一条日志,告知计算完成,记录日志操作不需要输入参数也不需要返回值。