CompletableFuture allof 超时处理

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

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

clipboard.png

阅读 10.2k
1 个回答

编译报错的问题,是题主没有太仔细哈,这个很容易就检查出来了
可以看到这个报错标红的地方,在applyToEither方法的第二个参数上,那查看一哈applyToEither方法的参数格式

public <U> CompletableFuture<U> applyToEither(
        CompletionStage<? extends T> other, Function<? super T, U> fn) {
        return orApplyStage(null, other, fn);
    }

第二个参数是一个FunctionFunction要求的是根据一个参数返回一个结果,而题主写的很明显,是没有参数的啊,写成了一个Supplier,当然参数类型是不符合方法applyToEither的要求噻

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏