2016-12-15 22 views
1

我想使用的Durian library錯誤類,在Java 8榴蓮的錯誤類重投()包裝方法調用編譯器錯誤

的lambda函數捕獲檢查異常我寫了簡單的功能:

void eat(NsiItemInfoType food) throws CantUpdNSI {} 

,並試圖把它叫做:

此代碼的工作很好:

res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(this:: eat)); 

但這代碼調用編譯器錯誤的方法渦卷(Throwing.Function)是不明確的類型Errors.Rethrowing

res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(t -> eat(t))); 

我無法理解爲什麼。

我從這裏的例子:https://github.com/diffplug/durian/blob/v2.0/test/com/diffplug/common/base/ErrorsExample.java

榴蓮版本:3.4.0 com.diffplug.durian

+0

我無法用JRE1.8重現問題。您準確使用哪個JRE版本? – Spotted

+0

正是jdk1.8.0_60 – Lev

+0

用jdk1.8.0_60嘗試沒有問題。你使用哪個IDE(以及哪個版本)? – Spotted

回答

0

我要做下一個,放置支架過食()

res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(t ->{ eat(t); }));