Sobes.tech
Junior — Middle

Функсионалият кифояи flatMap дар синфи Optional чӣ гуна аст?

sobes.tech AI

Ҷавоб аз 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>> мешуд, ки барои кор бо он баъдтар нороҳат аст.