Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpOpInr 22 of 322 menu
◀ ▶

Контейнер Optional в Java

Контейнер Optional хранит либо одно значение типа T, либо ничего. Метод, который может не найти результат, возвращает не null, а объект, из которого видно: значение есть или его нет. Так проще читать сигнатуру и не забыть проверку перед точкой.

Тип лежит в пакете java.util и появился в Java 8. Он не заменяет все проверки на null, но удобен для возврата из метода поиска: имя пользователя по id, первая подходящая запись, разбор необязательного поля.

Поиск заголовка по коду может вернуть пустой контейнер, если записи нет. Снаружи с результатом работают через проверку или запасное значение, а не через рискованный get на null:

import java.util.Optional; Optional<String> findTitle(int id) { if (id == 1) { return Optional.of("News"); } return Optional.empty(); } void demo() { Optional<String> title = findTitle(2); System.out.println(title.orElse("unknown")); }

Для id без записи в консоли будет "unknown". Программа не упала на разыменовании: отсутствие заложено в тип возврата, а не спрятано в null.

Дальше разберем создание контейнера, проверки, извлечение значения и цепочки map и flatMap без вложенных if на каждом шаге.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить