Используется для избежания проверок на 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"));