# Print output for @column tags ?>
public
final
class
Optional
extends Object
java.lang.Object | |
↳ | java.util.Optional<T> |
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 methods | |
---|---|
static
<T>
Optional<T>
|
empty()
Returns an empty |
boolean
|
equals(Object obj)
Indicates whether some other object is "equal to" this Optional. |
Optional<T>
|
filter(Predicate<? super T> predicate)
If a value is present, and the value matches the given predicate,
return an |
<U>
Optional<U>
|
flatMap(Function<? super T, Optional<U>> mapper)
If a value is present, apply the provided |
T
|
get()
If a value is present in this |
int
|
hashCode()
Returns the hash code value of the present value, if any, or 0 (zero) if no value is present. |
void
|
ifPresent(Consumer<? super T> consumer)
If a value is present, invoke the specified consumer with the value, otherwise do nothing. |
boolean
|
isPresent()
Return |
<U>
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 |
static
<T>
Optional<T>
|
of(T value)
Returns an |
static
<T>
Optional<T>
|
ofNullable(T value)
Returns an |
T
|
orElse(T other)
Return the value if present, otherwise return |
T
|
orElseGet(Supplier<? extends T> other)
Return the value if present, otherwise invoke |
<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 methods | |
---|---|
public static Optional<T> empty ()
Returns an empty Optional
instance. No value is present for this
Optional.
==
against instances returned by
Option.empty()
. There is no guarantee that it is a singleton.
Instead, use isPresent()
.Returns | |
---|---|
Optional<T> |
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:
Optional
and;
equals()
.
Parameters | |
---|---|
obj |
Object : an object to be tested for equality |
Returns | |
---|---|
boolean |
{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 |
Predicate : a predicate to apply to the value, if present |
Returns | |
---|---|
Optional<T> |
an Optional describing the value of this Optional
if a value is present and the value matches the given predicate,
otherwise an empty Optional |
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(java.util.function.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 |
Function : a mapping function to apply to the value, if present
the mapping function |
Returns | |
---|---|
Optional<U> |
the result of applying an Optional -bearing mapping
function to the value of this Optional , if a value is present,
otherwise an empty Optional |
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 | |
---|---|
T |
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 | |
---|---|
int |
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 |
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 | |
---|---|
boolean |
true if there is a value present, otherwise false |
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
.
Optional<FileInputStream>
:
Optional<FileInputStream> fis =
names.stream().filter(name -> !isProcessedYet(name))
.findFirst()
.map(name -> new FileInputStream(name));
Here, findFirst
returns an Optional<String>
, and then
map
returns an Optional<FileInputStream>
for the desired
file if one exists.Parameters | |
---|---|
mapper |
Function : a mapping function to apply to the value, if present |
Returns | |
---|---|
Optional<U> |
an Optional describing the result of applying a mapping
function to the value of this Optional , if a value is present,
otherwise an empty Optional |
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 |
T : the value to be present, which must be non-null |
Returns | |
---|---|
Optional<T> |
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 |
T : the possibly-null value to describe |
Returns | |
---|---|
Optional<T> |
an Optional with a present value if the specified value
is non-null, otherwise an empty Optional |
public T orElse (T other)
Return the value if present, otherwise return other
.
Parameters | |
---|---|
other |
T : the value to be returned if there is no value present, may
be null |
Returns | |
---|---|
T |
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 |
Supplier : a Supplier whose result is returned if no value
is present |
Returns | |
---|---|
T |
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.
IllegalStateException::new
Parameters | |
---|---|
exceptionSupplier |
Supplier : The supplier which will return the exception to
be thrown |
Returns | |
---|---|
T |
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 | |
---|---|
String |
the string representation of this instance |