Java 8 のラムダ関数でチェック例外をキャッチするために、 Durian ライブラリの Errors クラスを使用しようとしています。
私は簡単な関数を書きました:
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