Java Core middle
Optional — когда?
Ответ
Для возвращаемых значений методов. НЕ для полей (не Serializable), НЕ для параметров, НЕ для коллекций (пустая лучше). Антипаттерны: Optional.get() без isPresent(), Optional в полях, Optional<List>.
Разбор: Optional спроектирован как тип возвращаемого значения метода, где результат может отсутствовать. Поля делать Optional не стоит (он не Serializable и добавляет накладные расходы), параметры — тоже (это усложняет вызов и не даёт гарантий). Для коллекций правильнее возвращать пустую коллекцию, а не Optional<List>: ловушка дистракторов в том, что они применяют Optional туда, где он создаёт проблемы, а не решает их.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.