September 2019
Intermediate to advanced
816 pages
18h 47m
English
Let's consider a method that returns an Optional class. Mainly, this method computes an Optional class and, if it isn't empty, then it simply returns this Optional class. Otherwise, if the computed Optional class is empty then we execute some other action that also returns Optional class.
The isPresent()-get() pair can do it as follows (this should be avoided):
private final static String BOOK_STATUS = "UNKNOWN";...// Avoidpublic Optional<String> findStatus() { Optional<String> status = ...; // this is prone to be empty if (status.isPresent()) { return status; } else { return Optional.of(BOOK_STATUS); }}
Alternatively, we should avoid such constructions as follow:
return Optional.of(status.orElse(BOOK_STATUS)); ...