Sobes.tech
Junior — Middle

Akú funkcionalitu implementuje metóda flatMap v triede Optional?

sobes.tech AI

Odpoveď od AI

Metóda flatMap v triede Optional v jazyku Java umožňuje aplikovať funkciu, ktorá vracia iný Optional, na hodnotu vo vnútri pôvodného Optional, a "rozbaliť" zanořený Optional na jednu úroveň.

Ak máte Optional<T> a funkciu T -> Optional<U>, potom flatMap túto funkciu aplikuje a vráti Optional<U>, čím sa vyhnete zanozeniu Optional<Optional<U>>.

Príklad:

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]

Ak by bol použitý map, výsledok by bol Optional<Optional<Integer>>, čo je menej praktické pre ďalšiu prácu.