Optional
не является заменой условной логики.
Optional
был добавлен для того, чтобы API имел согласованный способ объявления о том, что метод возвращает значение, которое может присутствовать или не присутствовать, без возврата null. Возвращение null
уязвимо для исключений, и нет простого способа узнать, стоит ли ожидать null
без чтения документации. Optional
делает этот контракт явным.
Так что, хотя возможно заменить вашу условную логику на Optional
s, вряд ли ваш код станет лучше или легче для чтения.
Вот один пример, чтобы удовлетворить ваше любопытство:
if (nonNull(printWriter)) {
printWriter.flush();
}
становится
Optional.ofNullable(printWriter).ifPresent(PrintWriter::flush);