Java 9 Optional улучшения

FacebooktwittertumblrFacebooktwittertumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 9.

1. Введение

Java 9 принесла довольно много нового в нашу жизнь, исключением не стали Optional и Stream API.

2. Stream из Optional

Да, теперь стало возможным создать Stream из Optional.

Если Optional будет пустым, то и Stream, соответственно, тоже. А теперь узнаем зачем это нужно.

Представим следующую ситуацию: нам нужно найти в базе всех персонажей по именам и вывести на экран их фамилии с помощью Java 8

Вот наша "база данных" и поиск в ней

И собственно сама логика поиска и вывода

Как видим, нам приходится проверять  Optinal перед тем как взять его значение. Но в Java 9 это можно сделать проще, ведь мы можем сделать Stream из Optional

Результат тот же, а код выглядит более опрятным.

3. Optional.ifPresentOrElse()

Еще один полезный метод, который позволяет выполнить одно действие, если значение в Optional присутствует, и другое  - если его нет.

Реализация этого метода выглядит так

Т.е., если значение Optional присутствует, исполняется наше действие, если нет - запускается переданный Runnable.

Вывод в консоль

4. Optional.or()

Этот новый метод пришёл в дополнение к orElseGet(), ведь тот не до конца безопасен.

Пример

Если findHomeAddress() не "найдет" адрес пользователя, вызовется метод findWorkAddress(), но если и он не "найдет" адрес, то мы получим null. Новый метод or() решает эту проблему, он принимает Supplier, который должен вернуть Optional, а не обычный объект

На этом статья заканчивается, но не новинки Java 9. Спасибо, что были с нами 🙂

Хотите записаться к нам на курсы? Смотрите детальную информацию у нас на сайте.

 

FacebooktwittertumblrFacebooktwittertumblr

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