September 2019
Intermediate to advanced
816 pages
18h 47m
English
Starting with JDK 9, we can refer to an Optional instance as Stream by applying the Optional.stream() method.
This is quite useful when we have to chain the Optional and Stream APIs. The Optional.stream() method returns a Stream of one element (the value of Optional) or an empty Stream (if Optional has no value). Furthermore, we can use all of the methods that are available in the Stream API.
Let's assume that we have a method for fetching books by ISBN (if no book matches the given ISBN, then this method returns an empty Optional object):
public Optional<Book> fetchBookByIsbn(String isbn) { // fetching book by the given "isbn" can return null Book book = ...; return Optional.ofNullable(book);}