Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpOpCn 33 of 322 menu
◀ ▶

Цепочки шагов с Optional в Java

Несколько шагов подряд читаются как pipeline: каждый метод получает контейнер от предыдущего. Пустота на любом этапе останавливает дальнейшую работу, но не ломает программу.

Разбор необязательного поля профиля:

import java.util.Optional; record Profile(Optional<String> email) {} Optional<String> domain(Profile profile) { return profile.email() .map(String::trim) .filter(s -> s.contains("@")) .map(s -> s.substring(s.indexOf('@') + 1)); }

Если email пуст, строка без @ или после trim не проходит filter, итоговый контейнер пуст. Иначе внутри лежит домен.

В конце цепочки часто стоят orElse, orElseGet или ifPresent:

import java.util.Optional; Optional<String> nick = Optional.ofNullable(null) .map(String::trim) .filter(s -> !s.isEmpty()); String shown = nick.orElse("guest"); System.out.println(shown);

Метод or подставляет другой Optional, если текущий пуст. Его добавляют, когда есть запасной источник того же типа.

Дан код:

String input = " 42 ";

Обрежьте пробелы, попробуйте получить число и выведите его. Если число получить нельзя, выведите 0.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить