A container object which may or may not contain a non-null value.
If a value is present, isPresent()
will return true
and
get()
will return the value.
Additional methods that depend on the presence or absence of a contained
value are provided, such as orElse()
(return a default value if value not present) and
ifPresent()
(execute a block
of code if the value is present).
Public Method Summary
static <T> Optional<T> |
empty()
Returns an empty
Optional instance. |
boolean | |
Optional<T> | |
<U> Optional<U> | |
T |
get()
If a value is present in this
Optional , returns the value,
otherwise throws NoSuchElementException . |
int |
hashCode()
Returns the hash code value of the present value, if any, or 0 (zero) if
no value is present.
|
void | |
boolean |
isPresent()
Return
true if there is a value present, otherwise false . |
<U> Optional<U> | |
static <T> Optional<T> |
of(T value)
Returns an
Optional with the specified present non-null value. |
static <T> Optional<T> |
ofNullable(T value)
Returns an
Optional describing the specified value, if non-null,
otherwise returns an empty Optional . |
T |
orElse(T other)
Return the value if present, otherwise return
other . |
T | |
<X extends Throwable> T |
orElseThrow(Supplier<? extends X> exceptionSupplier)
Return the contained value, if present, otherwise throw an exception
to be created by the provided supplier.
|
String |
toString()
Returns a non-empty string representation of this Optional suitable for
debugging.
|
Inherited Method Summary
Public Methods
public static Optional<T> empty ()
Returns an empty Optional
instance. No value is present for this
Optional.
Returns
- an empty
Optional
public boolean equals (Object obj)
Indicates whether some other object is "equal to" this Optional. The other object is considered equal if:
- it is also an
Optional
and; - both instances have no value present or;
- the present values are "equal to" each other via
equals()
.
Parameters
obj | an object to be tested for equality |
---|
Returns
- {code true} if the other object is "equal to" this object
otherwise
false
public Optional<T> filter (Predicate<? super T> predicate)
If a value is present, and the value matches the given predicate,
return an Optional
describing the value, otherwise return an
empty Optional
.
Parameters
predicate | a predicate to apply to the value, if present |
---|
Returns
- an
Optional
describing the value of thisOptional
if a value is present and the value matches the given predicate, otherwise an emptyOptional
Throws
NullPointerException | if the predicate is null |
---|
public Optional<U> flatMap (Function<? super T, Optional<U>> mapper)
If a value is present, apply the provided Optional
-bearing
mapping function to it, return that result, otherwise return an empty
Optional
. This method is similar to map(Function)
,
but the provided mapper is one whose result is already an Optional
,
and if invoked, flatMap
does not wrap it with an additional
Optional
.
Parameters
mapper | a mapping function to apply to the value, if present the mapping function |
---|
Returns
- the result of applying an
Optional
-bearing mapping function to the value of thisOptional
, if a value is present, otherwise an emptyOptional
Throws
NullPointerException | if the mapping function is null or returns a null result |
---|
public T get ()
If a value is present in this Optional
, returns the value,
otherwise throws NoSuchElementException
.
Returns
- the non-null value held by this
Optional
Throws
NoSuchElementException | if there is no value present |
---|
See Also
public int hashCode ()
Returns the hash code value of the present value, if any, or 0 (zero) if no value is present.
Returns
- hash code value of the present value or 0 if no value is present
public void ifPresent (Consumer<? super T> consumer)
If a value is present, invoke the specified consumer with the value, otherwise do nothing.
Parameters
consumer | block to be executed if a value is present |
---|
Throws
NullPointerException | if value is present and consumer is
null
|
---|
public boolean isPresent ()
Return true
if there is a value present, otherwise false
.
Returns
true
if there is a value present, otherwisefalse
public Optional<U> map (Function<? super T, ? extends U> mapper)
If a value is present, apply the provided mapping function to it,
and if the result is non-null, return an Optional
describing the
result. Otherwise return an empty Optional
.
Parameters
mapper | a mapping function to apply to the value, if present |
---|
Returns
- an
Optional
describing the result of applying a mapping function to the value of thisOptional
, if a value is present, otherwise an emptyOptional
Throws
NullPointerException | if the mapping function is null |
---|
public static Optional<T> of (T value)
Returns an Optional
with the specified present non-null value.
Parameters
value | the value to be present, which must be non-null |
---|
Returns
- an
Optional
with the value present
Throws
NullPointerException | if value is null |
---|
public static Optional<T> ofNullable (T value)
Returns an Optional
describing the specified value, if non-null,
otherwise returns an empty Optional
.
Parameters
value | the possibly-null value to describe |
---|
Returns
- an
Optional
with a present value if the specified value is non-null, otherwise an emptyOptional
public T orElse (T other)
Return the value if present, otherwise return other
.
Parameters
other | the value to be returned if there is no value present, may be null |
---|
Returns
- the value, if present, otherwise
other
public T orElseGet (Supplier<? extends T> other)
Return the value if present, otherwise invoke other
and return
the result of that invocation.
Parameters
other | a Supplier whose result is returned if no value
is present |
---|
Returns
- the value if present otherwise the result of
other.get()
Throws
NullPointerException | if value is not present and other is
null
|
---|
public T orElseThrow (Supplier<? extends X> exceptionSupplier)
Return the contained value, if present, otherwise throw an exception to be created by the provided supplier.
Parameters
exceptionSupplier | The supplier which will return the exception to be thrown |
---|
Returns
- the present value
Throws
if there is no value present | |
NullPointerException | if no value is present and
exceptionSupplier is null
|
Throwable |
public String toString ()
Returns a non-empty string representation of this Optional suitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
Returns
- the string representation of this instance