![Объект в футляре][1]
Классу Optional посвящено немало статей и tutorials, в том числе [этот][2] и [этот][3] на Хабре.
Большинство из них рассказывают **как** вызываются методы этого класса. Я в этом tutorial делаю упор на то **зачем, почему, в каких случаях** можно (а скорее даже нужно) применять тот или иной метод класса. Я думаю, это очень важно, ибо как показал опрос после [первой статьи][4] этого tutorial, далеко не все Java — программисты вошли во вкус использования всей мощи методов этого класса.
Для лучшего объяснения методов класса я буду использовать более сложные и наглядные примеры, чем в большинстве других tutotials — кофеварку, фильтрационную установку, миксер и т.д.
Это вторая статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В [первой статье][5] было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional.
В этой статье мы рассмотрим все методы класса в том виде, как их предоставляет Java 8. Расширения класса в Java 9 рассмотрены в[ третьей статье][6] этой серии.Четвертая статья будет посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а пятая подведёт итоги. [Читать дальше →][7]
[1]:
https://habrastorage.org/webt/ys/0h/kg/ys0hkgszo0x804sxkfr0q6svqcm.jpeg
[2]:
https://habrahabr.ru/post/346782/
[3]:
https://habrahabr.ru/post/225641/
[4]:
https://habrahabr.ru/post/347480/
[5]:
https://habrahabr.ru/post/347480/
[6]:
https://habrahabr.ru/post/347748/
[7]:
https://habrahabr.ru/post/347576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347576#habracut