Ответ
Optional — это контейнерный объект, который может содержать или не содержать ненулевое значение. Его основная цель — предоставить типобезопасный способ представления опциональных значений и избежать ошибок NullPointerException.
Основные причины использования:
- Явно указывает, что возвращаемое значение может отсутствовать.
- Поощряет программиста явно обрабатывать случай отсутствия значения.
- Уменьшает количество проверок на
nullв коде.
Пример использования:
public Optional<String> findUserById(Long id) {
// ... логика поиска
return user != null ? Optional.of(user) : Optional.empty();
}
// Клиентский код безопасно обрабатывает результат
findUserById(123L)
.ifPresentOrElse(
name -> System.out.println("User found: " + name),
() -> System.out.println("User not found")
);
Важно: Optional предназначен в первую очередь для использования в качестве возвращаемого типа. Не следует использовать его для полей класса или параметров методов.