Метод 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,
который представляет контейнер для значения