Back to questions
Junior — Middle
69
Какая функциональность реализована методом flatMap у класса Optional?
Companies where asked
Тетрасофт
Answer from AI
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>>, что неудобно для дальнейшей работы.