Sobes.tech
Junior — Middle

Que funcionalidade é implementada pelo método flatMap na classe Optional?

sobes.tech IA

Resposta da IA

O método flatMap na classe Optional em Java permite aplicar uma função que retorna outro Optional ao valor dentro do Optional original, e "desempacotar" o Optional aninhado em um único nível.

Se você tem um Optional<T> e uma função T -> Optional<U>, então flatMap aplicará essa função e retornará um Optional<U>, evitando a aninhamento de Optional<Optional<U>>.

Exemplo:

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]

Se fosse usado map, o resultado seria Optional<Optional<Integer>>, o que não é conveniente para o uso posterior.