Option

Проработать

  1. Объект в футляре или Optional в Java 8 и Java 9. Часть 2: «Как это делается в Java 8»
  2. Optional: Кот Шрёдингера в Java 8
  3. Урок 330: Java 8 p6: Optional
  4. Optional: Кот Шрёдингера в Java 8

Зачем нужен

Используется для избежания проверок на Null.

В местах где мы возвращали null нужно возвращать Option.empty().

Методы

Optional.of(name) - создание Optional, если объект будет null получим NullPointerException.

Optional.ofNullable(name) - создание Optional, если объект будет null получим пустой Option.

Optional.Optional.empty() - создание пустого Optional.

orElse(value) – если значение присутствует, оно возвращается, иначе возвращается указанное значение.

String text = null;
String result = Optional.ofNullable(text).orElse("default");
        

orElseGet(Supplier) – если значение присутствует, оно возвращается, иначе вызывается переданный метод (лямбда-функция).

String text = null;
String result = Optional.ofNullable(text).orElseGet(() -> "default");
        

orElseThrow(Supplier<Exception>) – если значение отсутствует, выбрасывается исключение.

String text = null;
String result = Optional.ofNullable(text).orElseThrow(() -> new Exception("error"));