April 2018
Intermediate to advanced
264 pages
8h 24m
Polish
Ech, czemu dyskusja o Optional zawsze wymaga 300 maili?
— Brian Goetz, lista mailingowa lambda-libs-spec-experts
23 października 2013 r.
W API Javy 8 wprowadzono nową klasę o nazwie java.util.Optional<T>. Choć wielu programistów myśli, że klasa ta ma za zadanie wyeliminować wyjątki NullPointerException z kodu źródłowego, rzeczywistość wygląda inaczej. Podstawowym zadaniem typu Optional jest informowanie użytkownika, kiedy zwrócona wartość legalnie może być null. Taka sytuacja może się zdarzyć w przypadku filtrowania strumienia wartości na podstawie jakiegoś warunku, który nie pozostawia żadnych elementów.
W API Stream następujące metody zwracają Optional, jeśli w strumieniu nie pozostaje ani jeden element: reduce,