Кто-то задал вопрос по другому SO-ответу о том, является ли это плохой практикой или неэффективным:
Optional<User> user = ...
user.ifPresent(u -> doSomethingWithoutUser());
вместо
if (user.isPresent()) doSomethingWithoutUser();
Специальнотот факт, что мы адаптируем метод с нулевым аргументом в Consumer<User>
, который игнорирует его параметр u
.
- Поскольку это не терминальная операция Stream, факт
doSomethingWithoutUser()
вероятно, имеет побочные эффекты, это не проблема. - Меня не беспокоит специфика этого однострочного Необязательный пример, это может быть результатом длинной цепочкифункциональные / потоковые вызовы, которые просто кажутся естественными для завершения в строке с лямбда-вызовом.