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

Запасное значение через orElseGet в Java

Метод orElseGet принимает Supplier. Лямбда или ссылка на метод вызываются только если контейнер пуст. Когда значение уже лежит внутри, поставщик не трогают.

Так откладывают дорогой шаг до момента, когда он действительно нужен:

import java.util.Optional; Optional<String> cached = Optional.of("from-cache"); String value = cached.orElseGet(() -> { System.out.println("db call"); return "from-db"; }); System.out.println(value);

Для непустого контейнера строка "db call" не появится. Для Optional.empty() выполнится лямбда и вернет ее результат.

Сравнение с orElse: там запасное значение создают до вызова метода; здесь - только при пустоте.

Подготовьте ленивый запас со значением 0. Для пустого контейнера и контейнера с числом 7 выведите итоговые значения.

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