Junior — Middle
¿Qué funcionalidad implementa el método flatMap en la clase Optional?
sobes.tech AI
Respuesta de la IA
Метод 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>>, что неудобно для дальнейшей работы.