Encodera

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

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

Справочник Java

Optional

Контейнер, в котором либо есть значение, либо его нет, — замена возврату `null`.

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

Синтаксис

public final class Optional<T>

Примеры

Метод, который может ничего не найти:

Optional<String> findEmail(String name) {
    Map<String, String> emails = Map.of("Anna", "anna@mail.com");
    return Optional.ofNullable(emails.get(name));
}
 
void main() {
    IO.println(findEmail("Anna").orElse("no email"));
    IO.println(findEmail("Oleg").orElse("no email"));
    IO.println(findEmail("Oleg"));
}

Результат:

anna@mail.com
no email
Optional.empty

Примечания

Optional делает отсутствие значения явной частью типа: вызывающий код видит, что результата может не быть. Его используют как тип возвращаемого значения, но не для полей классов и параметров методов. Сам Optional никогда не должен быть null.

См. также

  • Optional.ofNullable() — Оборачивает значение, которое может быть `null`, в `Optional`.
  • Optional.orElse() — Возвращает значение или запасной вариант, если значения нет.
  • Optional.map() — Преобразует значение внутри `Optional`, если оно есть.
  • Stream.findFirst() — Возвращает первый элемент потока в виде `Optional`.

В учебнике

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

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

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