CompletableFuture在java中的报错处理

我们对于CompletableFuture的理解,可以先从它的基础类Future讲起,作为一个用来计算异步中的工具存在的。CompletableFuture相对而言,在功能上进一步的升级,对于线程的调用效率上更高。本篇我们CompletableFuture就在异步处理中遇到的报错问题进行分析,提出解决的方法。

1.问题分析

想实现的效果:future的集合如果在3秒内没有返回就执行提取出其中已经完成的future。

编译报错,"Cannot infer functional interface type."

2.解决办法

(1)可以这个报错标红的地方,在applyToEither方法的第二个参数上,那查看一哈applyToEither方法的参数格式

public<U>CompletableFuture<U>applyToEither(
CompletionStage<?extendsT>other,Function<?superT,U>fn){
returnorApplyStage(null,other,fn);
}

2)第二个参数是一个Function,Function要求的是根据一个参数返回一个结果,而这里写的很明显,是没有参数的,写成了一个Supplier,当然参数类型是不符合方法applyToEither的要求。

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容