Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Optional.orElseGet()

Возвращает значение или вызывает функцию, чтобы создать запасной вариант.

Доступно с: Java 8

Синтаксис

T orElseGet(Supplier<? extends T> supplier)

Параметры

ПараметрТипОписание
supplierSupplier<? extends T>Функция, которая создаёт запасное значение.

Возвращаемое значение

TЗначение из `Optional` или результат `supplier`.

Примеры

Функция вызывается только при отсутствии значения:

String loadDefault() {
    IO.println("loading default...");
    return "default";
}
 
void main() {
    IO.println(Optional.of("cached").orElseGet(this::loadDefault));
    IO.println(Optional.<String>empty().orElseGet(this::loadDefault));
}

Результат:

cached
loading default...
default

Примечания

Разница с orElse() видна, когда создание запасного значения дорогое или имеет побочные эффекты: orElseGet() вызывает функцию только при пустом Optional.

См. также

  • Optional.orElse() — Возвращает значение или запасной вариант, если значения нет.
  • Supplier — Поставщик: функция без аргументов, которая возвращает значение.

В учебнике

  • Optional — Класс Optional в Java: значение, которого может не быть, создание через of и empty, orElse, map, ifPresent и orElseThrow.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.