public final class Optional<T> extends Object
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).
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.
| Modifier and Type | Method and Description |
|---|---|
static <T> Optional |
empty()
Returns an empty
Optional instance.
|
boolean |
equals(Object
Indicates whether some other object is "equal to" this Optional.
|
Optional |
filter(Predicate
If a value is present, and the value matches the given predicate, return an
Optional describing the value, otherwise return an empty
Optional.
|
<U> Optional |
flatMap(Function
If a value is present, apply the provided
Optional-bearing mapping function to it, return that result, otherwise return an empty
Optional.
|
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 |
ifPresent(Consumer
If a value is present, invoke the specified consumer with the value, otherwise do nothing.
|
boolean |
isPresent()
Return
true if there is a value present, otherwise
false.
|
<U> Optional |
map(Function
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.
|
static <T> Optional |
of(T value)
Returns an
Optional with the specified present non-null value.
|
static <T> Optional |
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 |
orElseGet(Supplier
Return the value if present, otherwise invoke
other and return the result of that invocation.
|
<X extends Throwable |
orElseThrow(Supplier
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.
|
public static <T> Optional<T> empty()
Optional instance. No value is present for this Optional.
T - Type of the non-existent value
Optional
public static <T> Optional<T> of(T value)
Optional with the specified present non-null value.
T - the class of the value
value - the value to be present, which must be non-null
Optional with the value present
NullPointerException - if value is null
public static <T> Optional<T> ofNullable(T value)
Optional describing the specified value, if non-null, otherwise returns an empty
Optional.
T - the class of the value
value - the possibly-null value to describe
Optional with a present value if the specified value is non-null, otherwise an empty
Optional
public T get()
Optional, returns the value, otherwise throws
NoSuchElementException.
Optional
NoSuchElementException - if there is no value present
isPresent()
public boolean isPresent()
true if there is a value present, otherwise
false.
true if there is a value present, otherwise
false
public void ifPresent(Consumer<? super T> consumer)
consumer - block to be executed if a value is present
NullPointerException - if value is present and
consumer is null
public Optional<T> filter(Predicate <? super T> predicate)
Optional describing the value, otherwise return an empty
Optional.
predicate - a predicate to apply to the value, if present
Optional describing the value of this
Optional if a value is present and the value matches the given predicate, otherwise an empty
Optional
NullPointerException - if the predicate is null
public <U> Optional<U> map(Function <? super T ,? extends U> mapper)
Optional describing the result. Otherwise return an empty
Optional.
U - The type of the result of the mapping function
mapper - a mapping function to apply to the value, if present
Optional describing the result of applying a mapping function to the value of this
Optional, if a value is present, otherwise an empty
Optional
NullPointerException - if the mapping function is null
public <U> Optional<U> flatMap(Function <? super T ,Optional <U>> mapper)
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.
U - The type parameter to the
Optional returned by
mapper - a mapping function to apply to the value, if present the mapping function
Optional-bearing mapping function to the value of this
Optional, if a value is present, otherwise an empty
Optional
NullPointerException - if the mapping function is null or returns a null result
public T orElse(T other)
other.
other - the value to be returned if there is no value present, may be null
other
public T orElseGet(Supplier<? extends T> other)
other and return the result of that invocation.
other - a
Supplier whose result is returned if no value is present
other.get()
NullPointerException - if value is not present and
other is null
public <X extends Throwable> T orElseThrow(Supplier <? extends X> exceptionSupplier) throws X extends Throwable
X - Type of the exception to be thrown
exceptionSupplier - The supplier which will return the exception to be thrown
X - if there is no value present
NullPointerException - if no value is present and
exceptionSupplier is null
X extends Throwable
public boolean equals(Objectobj)
Optional and; equals(). equals in class
Object
obj - an object to be tested for equality
false
Object.hashCode() ,
HashMap
public int hashCode()
hashCode in class
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)