Sobes.tech
Назад к вопросам
Junior — Middle
65

Какая функциональность реализована методом flatMap у класса Optional?

Компании, где спрашивали
Тетрасофт

Ответ от нейросети

sobes.tech AI

Метод flatMap у класса Optional в Java позволяет применить функцию, которая возвращает другой Optional, к значению внутри исходного Optional, и "распаковать" вложенный Optional в один уровень.

Если у вас есть Optional<T> и функция T -> Optional<U>, то flatMap применит эту функцию и вернёт Optional<U>, избегая вложенности Optional<Optional<U>>.

Пример:

Optional<String> optional = Optional.of("123");

Optional<Integer> result = optional.flatMap(s -> {
    try {
        return Optional.of(Integer.parseInt(s));
    } catch (NumberFormatException e) {
        return Optional.empty();
    }
});

System.out.println(result); // Optional[123]

Если бы использовался map, результатом был бы Optional<Optional<Integer>>, что неудобно для дальнейшей работы.