Optional — это контейнерный объект, введённый в Java 8, который оборачивает либо ненулевое значение, либо представляет отсутствие значения (null). Это более элегантный способ работать с потенциально нулевыми ссылками.
Главные методы для работы с Optional:
isPresent() — возвращает true, если значение существует, false в противном случаеget() — получает обёрнутое значение, если оно присутствуетorElse(T defaultValue) — возвращает значение или указанное значение по умолчанию, если его нетifPresent(Consumer action) — выполняет действие только если значение присутствуетOptional исключает риски NullPointerException, заставляя разработчиков явно обрабатывать случаи с null, вместо того чтобы предполагать наличие значений. Это приводит к:
Вместо традиционной проверки на null:
if (value != null) {
System.out.println(value);
}
Optional предоставляет декларативный подход:
Optional.ofNullable(value)
.ifPresent(System.out::println);
Optional особенно полезен при работе с источниками данных, которые могут содержать null-значения, — например, запросами к БД, ответами API или легаси-кодом. Он поощряет более безопасные практики написания кода, делая обработку null явной и осознанной, а не неявной и prone to ошибкам.
Метод get() на экземпляре Optional выбросит исключение, если обёрнутое значение отсутствует, что делает его небезопасным использовать без предварительного вызова isPresent().
Новый — ещё не проверен сообществом
Вы