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