Адаптирует ли метод «без аргументов» плохую форму потребителя? - PullRequest
2 голосов
/ 06 ноября 2019

Кто-то задал вопрос по другому SO-ответу о том, является ли это плохой практикой или неэффективным:

Optional<User> user = ...
user.ifPresent(u -> doSomethingWithoutUser());

вместо

if (user.isPresent()) doSomethingWithoutUser();

Специальнотот факт, что мы адаптируем метод с нулевым аргументом в Consumer<User>, который игнорирует его параметр u.

  • Поскольку это не терминальная операция Stream, факт doSomethingWithoutUser() вероятно, имеет побочные эффекты, это не проблема.
  • Меня не беспокоит специфика этого однострочного Необязательный пример, это может быть результатом длинной цепочкифункциональные / потоковые вызовы, которые просто кажутся естественными для завершения в строке с лямбда-вызовом.
...