Я пытаюсь получить число после выполнения вычислений с использованием лямбда-выражения, но получаю ошибку.
Я использую лямбда-выражение:
int num = Optional.ofNullable(list.stream().filter(x->x.getType().getTypeId()==Type.getTypeId()).limit(1).map(x->x.getNum())).get();
После фильтрации я хочуполучить первое найденное значениеНо я получаю сообщение об ошибке:
cannot convert from Stream<Integer> to int
Итак, в настоящее время я использую
Optional<> li = list.stream().filter(x->x.getType().getTypeId()==Type.getTypeId()).findFirst();
if (li.isPresent()) {
num = li.map(x-> x.getNum()).get();
}
Но я смотрел, можно ли сделать вышеупомянутое в одной строке, ачем дополнительный if
оператор
Раньше я пробовал get()
с findFirst()
, но он давал nullpointerException
.Как я могу безопасно получить значение.