Java 8 Optional

FacebooktwittertumblrFacebooktwittertumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!


В этой статье мы рассмотрим опциональные типы (Optional) в Java 8

1. Введение

Optional - новый класс в пакете java.util, является контейнером (оберткой) для значений которая также может безопасно содержать null.

Благодаря опциональным типам можно забыть про проверки на null и NullPointerException.

2. Optional basics

Для создания Optional используются методы:

Optional.of

В метод Optional.of нельзя передавать null, если конечно мы не хотим получить NullPointerException

- Optional.ofNullable

А вот в метод Optional.ofNullable передавать null можно безопасно

Optional.empty для создания пустого Optional

Для получения значения из Optional используется метод Optional.get, но он является небезопасным и может бросить NoSuchElementException

3. Optional isPresent, ifPresent

3.1 Optional isPresent

Метод Optional.isPresent возвращает true, если значение в нем присутствует, иначе возвращает false

Метод Optional.get лучше использовать в паре с Optional.isPresent чтобы предотвратить исключения

3.2 Optional ifPresent

Метод Optional.ifPresent выполняет переданное действие, если значение в Optional присутствует, иначе игнорирует его. Метод принимает лямбда-выражение известное как потребитель (Consumer).

4. Optional orElse

4.1 Optional orElse

Метод Optional.orElse возвращает переданное значение, если Optional пустой

4.2 Optional orElseGet

Метод Optional.orElseGet возвращает переданное значение из лямда-выражение , если Optional пустой

4.3 Optional orElseThrow

Метод Optional.orElseThrow бросает переданное исключение , если Optional пустой

5. Optional map, flatMap

5.1 Optional map

Метод Optional.map служит для преобразования значения внутри Optional. Если Optional пустой преобразование не будет происходить

5.2 Optional flatMap

Метод Optional.flatMap преобразовывает значение внутри Optional, но при этом не оборачивает их

В Java 8 есть еще множество полезных нововведений, которые можно найти тут

Надеемся - наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java в Киеве. Детальную информацию смотрите у нас на сайте.

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--