Java Core middle

Optional — когда?

Ответ

Для возвращаемых значений методов. НЕ для полей (не Serializable), НЕ для параметров, НЕ для коллекций (пустая лучше). Антипаттерны: Optional.get() без isPresent(), Optional в полях, Optional<List>.

Разбор: Optional спроектирован как тип возвращаемого значения метода, где результат может отсутствовать. Поля делать Optional не стоит (он не Serializable и добавляет накладные расходы), параметры — тоже (это усложняет вызов и не даёт гарантий). Для коллекций правильнее возвращать пустую коллекцию, а не Optional<List>: ловушка дистракторов в том, что они применяют Optional туда, где он создаёт проблемы, а не решает их.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться