Back to questions
СБЕР
Junior — Middle
60
Что представляет собой использование flatMap в контексте Optional и какова его основная идея?
Companies where asked
Answer from AI
sobes.tech AI
Метод flatMap в контексте Optional используется для преобразования значения внутри Optional, если оно присутствует, при этом результатом преобразования должен быть другой Optional. Основная идея — избежать вложенных Optional<Optional<T>> и упростить цепочку вызовов.
Например, если у вас есть Optional<String> и вы хотите получить длину строки в виде Optional<Integer>, можно использовать flatMap с функцией, возвращающей Optional:
Optional<String> optionalStr = Optional.of("hello");
Optional<Integer> length = optionalStr.flatMap(s -> Optional.of(s.length()));
Если бы вы использовали map, результатом был бы Optional<Optional<Integer>>, что неудобно для дальнейшей обработки. flatMap "расплющивает" вложенность, возвращая сразу Optional<Integer>.