我正在尝试使用Durian library的 Errors 类来捕获 Java 8 的 lambda 函数中的检查异常。
我写了简单的函数:
void eat(NsiItemInfoType food) throws CantUpdNSI {}
并试图称之为:
此代码运行良好:
res.getNsiList().getNsiItemInfo().stream().forEach(Errors.rethrow().wrap(this:: eat) );
但是此代码调用编译器错误方法 wrap(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
榴莲版本:com.diffplug.durian 3.4.0