首页  >  问答  >  正文

java - CompletableFuture allof 超时处理

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

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

黄舟黄舟2710 天前1795

全部回复(1)我来回复

  • 世界只因有你

    世界只因有你2017-06-12 09:26:13

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

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

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

    回复
    0
  • 取消回复