Optional is a container object which may or may not contain a value. The presence or absence of the contained value should be demonstrated by the Optional object itself.
Using an Optional variable which is expected to possibly be null is discouraged. An nullable Optional which uses null to indicate the absence of the value will lead to extra work for null checking when using the object and even cause exceptions such as NullPointerException. It is best to indicate the absence of the value by assigning it an empty optional.