Java 榴莲';s Errors类rethrow()。wrap方法调用编译器错误

Java 榴莲';s Errors类rethrow()。wrap方法调用编译器错误,java,lambda,checked-exceptions,Java,Lambda,Checked Exceptions,我试图使用类Errors来捕获Java8的lambda函数中的已检查异常 我写了一个简单的函数: void eat(NsiItemInfoType food) throws CantUpdNSI {} 试着称之为: 此代码运行良好: res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(this:: eat) ); 但是此代码调用编译器错误方法wrap(Throwing.Function)对于类型错误

我试图使用类Errors来捕获Java8的lambda函数中的已检查异常

我写了一个简单的函数:

void eat(NsiItemInfoType food) throws CantUpdNSI {}
试着称之为:

此代码运行良好:

res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(this:: eat) );
但是此代码调用编译器错误方法wrap(Throwing.Function)对于类型错误是不明确的。重新Throwing

res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(t -> eat(t)) );
我不明白为什么

我从这里得到了一些例子:


榴莲版本:com.diffplug.Durian 3.4.0

我接下来要做的是,在eat()上放上括号


我无法用JRE1.8重现该问题。您使用的是哪一个JRE版本?确切地说是jdk1.8.0_60,使用jdk1.8.0_60进行了尝试,没有问题。您使用哪个IDE(以及哪个版本)?Spring工具套件版本:3.7.3。发布版本Id:201602250958平台:Eclipse Luna SR2(4.4.2)尝试将您的Eclipse更新到最新版本。
res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(t ->{ eat(t); }) );