Я бы преобразовал это в метод, который возвращает Optional<String>
:
public Optional<String> getCookieValue(String name) {
final Cookie[] cookies = request.getCookies();
if(cookies == null) return Optional.empty();
return Arrays.stream(cookies)
.filter(e -> name.equals(e.getName()))
.findAny().map(Cookie::getValue);
}
, тогда вызывающий этот метод будет делать любое из этих действий в зависимости от того, как они намереваются использовать результат:
getCookieValue("random cookie").ifPresent(e -> { ... });
getCookieValue("random cookie").orElse(null);
....
....
return Optional<String>
, чтобы не иметь дело с nullity и позволить пользователю этого метода решать, что делать в «случае отсутствия значения». Это также лучше читается для пользователя этого API et c ....
Однако , если вы sh сохраняете свою текущую подпись метода, вы можете по крайней мере улучшите его до:
final Cookie[] cookies = request.getCookies();
if(cookies == null) return null; // avoids if blocks
return Arrays.stream(cookies)
.filter(e -> "random cookie".equals(e.getName()))
.findAny()
.map(Cookie::getValue)
.orElse(null);