2016-12-15 5 views
1

Я пытаюсь использовать класс Ошибки Durian library, для ловли проверенных исключений в лямбда-функции Java 8.Ошибки класс Rethrow Дуриана (в) завернуть метод вызывает ошибку компилятора

Я написал простую функцию:

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

I «Невозможно воспроизвести проблему с 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); }));