想实现的效果:future的集合如果在3秒内没有返回的化就执行提取出其中已经完成的future。
编译报错,"Cannot infer functional interface type."
世界只因有你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);
}
第二个参数是一个Function
,Function
要求的是根据一个参数返回一个结果,而题主写的很明显,是没有参数的啊,写成了一个Supplier
,当然参数类型是不符合方法applyToEither
的要求噻