想實現的效果: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
的要求噻