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

Метод ifPresent

Метод ifPresent класса Optional позволяет выполнить некоторое действие над значением, которое хранится внутри контейнера, но только в том случае, если это значение присутствует (то есть контейнер не пустой). В параметр метода мы передаем функциональный интерфейс Consumer, который принимает значение и ничего не возвращает. Если Optional пуст, переданный код просто не выполняется.

Синтаксис

optional.ifPresent(consumer)

Пример

Давайте создадим непустой Optional и выведем его значение на экран с помощью метода ifPresent:

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

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

"abcde"

Пример

А теперь проверим поведение метода на пустом Optional. В этом случае переданное действие не выполнится:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.empty(); opt.ifPresent(value -> System.out.println(value)); System.out.println("done"); } }

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

"done"

Пример

Метод ifPresent удобно использовать для изменения внешней переменной или коллекции на основе значения из Optional:

import java.util.Optional; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> res = new ArrayList<>(); Optional<Integer> opt = Optional.of(12345); opt.ifPresent(value -> res.add(value)); System.out.println(res); } }

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

[12345]

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

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