РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
561 of 1163 menu

Метод ifPresentOrElse

Метод ifPresentOrElse класса Optional позволяет выполнить одно действие, если значение в контейнере присутствует, и другое действие, если значение отсутствует. В первый параметр мы передаем функциональный интерфейс Consumer, который будет вызван с непустым значением. Во второй параметр мы передаем функциональный интерфейс Runnable, который будет вызван, если контейнер пуст.

Метод является более удобной альтернативой связке isPresent и orElse, когда нужно выполнить разные побочные действия, а не просто вернуть значение.

Синтаксис

optional.ifPresentOrElse(action, emptyAction)

Пример

Давайте создадим непустой Optional и выполним разные действия для присутствующего и отсутствующего значения:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.of("abcde"); opt.ifPresentOrElse( value -> System.out.println("Value: " + value), () -> System.out.println("Empty") ); } }

Результат выполнения кода:

"Value: abcde"

Пример

Давайте создадим пустой Optional и выполним разные действия:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.empty(); opt.ifPresentOrElse( value -> System.out.println("Value: " + value), () -> System.out.println("Empty") ); } }

Результат выполнения кода:

"Empty"

Пример

Давайте используем ifPresentOrElse для обработки значения из списка и выведем результат в консоль:

import java.util.List; import java.util.Optional; public class Main { public static void main(String[] args) { List<String> list = List.of("abcde", "12345"); Optional<String> res = list.stream().findFirst(); res.ifPresentOrElse( value -> System.out.println("Found: " + value), () -> System.out.println("Not found") ); } }

Результат выполнения кода:

"Found: abcde"

Смотрите также

  • метод ifPresent,
    который выполняет действие, если значение присутствует
  • метод orElse,
    который возвращает значение или альтернативу
  • метод orElseGet,
    который возвращает значение или результат поставщика
  • класс Optional,
    который представляет контейнер для значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить