Назад к вопросам
Junior — Middle
65
Можешь перечислить и объяснить различные способы использования класса Optional в Java?
Ответ от нейросети
sobes.tech AI
Класс Optional в Java используется для обёртки значений, которые могут быть отсутствующими (null), чтобы избежать NullPointerException и сделать код более читаемым и безопасным.
Основные способы использования Optional:
-
Создание Optional:
Optional.of(value)— создаёт Optional с непустым значением (если value == null, выбросит исключение).Optional.ofNullable(value)— создаёт Optional, который может содержать null (если value == null, создаётся пустой Optional).Optional.empty()— создаёт пустой Optional.
-
Проверка наличия значения:
isPresent()— возвращает true, если значение присутствует.ifPresent(Consumer)— выполняет действие, если значение присутствует.
-
Получение значения:
get()— возвращает значение, если оно есть, иначе выбрасывает исключение.orElse(defaultValue)— возвращает значение или дефолт, если пусто.orElseGet(Supplier)— лениво возвращает дефолтное значение.orElseThrow()— выбрасывает исключение, если значения нет.
-
Преобразование и фильтрация:
map(Function)— применяет функцию к значению, если оно есть, и возвращает новый Optional.flatMap(Function)— как map, но функция возвращает Optional.filter(Predicate)— возвращает Optional, если значение удовлетворяет условию.
Пример:
Optional<String> optionalName = Optional.ofNullable(getName());
optionalName.ifPresent(name -> System.out.println("Name: " + name));
String defaultName = optionalName.orElse("Unknown");
int length = optionalName.map(String::length).orElse(0);