A container object which may or may not contain a non-
null value. If a value is present,
isPresent() returns
true. If no value is present, the object is considered
empty and
isPresent() returns
false.
Additional methods that depend on the presence or absence of a contained value are provided, such as orElse() (returns a default value if no value is present) and ifPresent() (performs an action if a value is present).
This is a value-based class; use of identity-sensitive operations (including reference equality (==), identity hash code, or synchronization) on instances of Optional may have unpredictable results and should be avoided.