Junior — Middle
79
Optional контекстінде flatMap қолдану және оның негізгі идеясы қандай?
Сұралған компаниялар
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>.