想實現的效果:future的集合如果在3秒內沒有回傳的化就執行提取出其中已經完成的future。
編譯報錯,"Cannot infer functional interface type."
人生最曼妙的风景,竟是内心的淡定与从容!
編譯報錯的問題,是題主沒有太仔細哈,這個很容易就檢查出來了可以看到這個報錯標紅的地方,在applyToEither方法的第二個參數上,那查看一哈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的要求噻
Function
Supplier
編譯報錯的問題,是題主沒有太仔細哈,這個很容易就檢查出來了
可以看到這個報錯標紅的地方,在
applyToEither
方法的第二個參數上,那查看一哈applyToEither
方法的參數格式第二個參數是一個
Function
,Function
要求的是根據一個參數回傳一個結果,而題主寫的很明顯,是沒有參數的啊,寫成了一個Supplier
,當然參數類型是不符合方法applyToEither
的要求噻