Optional
class Optional<T : Any!>
kotlin.Any | |
↳ | java.util.Optional |
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; programmers should treat instances that are equal as interchangeable and should not use instances for synchronization, or unpredictable behavior may occur. For example, in a future release, synchronization may fail.
Summary
Public methods | |
---|---|
static Optional<T> |
empty() Returns an empty |
Boolean |
Indicates whether some other object is "equal to" this |
Optional<T>! |
If a value is present, and the value matches the given predicate, returns an |
Optional<U>! |
If a value is present, returns the result of applying the given |
T |
get() If a value is present, returns the value, otherwise throws |
Int |
hashCode() Returns the hash code of the value, if present, otherwise |
Unit |
If a value is present, performs the given action with the value, otherwise does nothing. |
Unit |
ifPresentOrElse(action: Consumer<in T>!, emptyAction: Runnable!) If a value is present, performs the given action with the value, otherwise performs the given empty-based action. |
Boolean |
isEmpty() If a value is not present, returns |
Boolean |
If a value is present, returns |
Optional<U>! |
If a value is present, returns an |
static Optional<T> |
of(value: T) Returns an |
static Optional<T> |
ofNullable(value: T?) Returns an |
Optional<T>! |
If a value is present, returns an |
T |
orElse(other: T) If a value is present, returns the value, otherwise returns |
T |
If a value is present, returns the value, otherwise returns the result produced by the supplying function. |
T |
If a value is present, returns the value, otherwise throws |
T |
orElseThrow(exceptionSupplier: Supplier<out X>!) If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function. |
Stream<T>! |
stream() If a value is present, returns a sequential |
String |
toString() Returns a non-empty string representation of this |
Public methods
empty
static fun <T : Any!> empty(): Optional<T>
Returns an empty Optional
instance. No value is present for this Optional
.
Parameters | |
---|---|
<T> |
The type of the non-existent value |
Return | |
---|---|
Optional<T> |
an empty Optional |
equals
fun equals(other: Any?): Boolean
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 |
Return | |
---|---|
Boolean |
true if the other object is "equal to" this object otherwise false |
filter
fun filter(predicate: Predicate<in T>!): Optional<T>!
If a value is present, and the value matches the given predicate, returns an Optional
describing the value, otherwise returns an empty Optional
.
Parameters | |
---|---|
predicate |
Predicate<in T>!: the predicate to apply to a value, if present |
Return | |
---|---|
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 |
Exceptions | |
---|---|
java.lang.NullPointerException |
if the predicate is null |
flatMap
fun <U : Any!> flatMap(mapper: Function<in T, out Optional<out U>!>!): Optional<U>!
If a value is present, returns the result of applying the given Optional
-bearing mapping function to the value, otherwise returns an empty Optional
.
This method is similar to map(java.util.function.Function)
, but the mapping function is one whose result is already an Optional
, and if invoked, flatMap
does not wrap it within an additional Optional
.
Parameters | |
---|---|
<U> |
The type of value of the Optional returned by the mapping function |
mapper |
Function<in T, out Optional<out U>!>!: the mapping function to apply to a value, if present |
Return | |
---|---|
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 |
Exceptions | |
---|---|
java.lang.NullPointerException |
if the mapping function is null or returns a null result |
get
fun get(): T
If a value is present, returns the value, otherwise throws NoSuchElementException
.
Return | |
---|---|
T |
the non-null value described by this Optional |
Exceptions | |
---|---|
java.util.NoSuchElementException |
if no value is present |
hashCode
fun hashCode(): Int
Returns the hash code of the value, if present, otherwise 0
(zero) if no value is present.
Return | |
---|---|
Int |
hash code value of the present value or 0 if no value is present |
ifPresent
fun ifPresent(action: Consumer<in T>): Unit
If a value is present, performs the given action with the value, otherwise does nothing.
Parameters | |
---|---|
action |
Consumer<in T>: the action to be performed, if a value is present |
Exceptions | |
---|---|
java.lang.NullPointerException |
if value is present and the given action is null |
ifPresentOrElse
fun ifPresentOrElse(
action: Consumer<in T>!,
emptyAction: Runnable!
): Unit
If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
Parameters | |
---|---|
action |
Consumer<in T>!: the action to be performed, if a value is present |
emptyAction |
Runnable!: the empty-based action to be performed, if no value is present |
Exceptions | |
---|---|
java.lang.NullPointerException |
if a value is present and the given action is null , or no value is present and the given empty-based action is null . |
isEmpty
fun isEmpty(): Boolean
If a value is not present, returns true
, otherwise false
.
Return | |
---|---|
Boolean |
true if a value is not present, otherwise false |
isPresent
fun isPresent(): Boolean
If a value is present, returns true
, otherwise false
.
Return | |
---|---|
Boolean |
true if a value is present, otherwise false |
map
fun <U : Any!> map(mapper: Function<in T, out U>!): Optional<U>!
If a value is present, returns an Optional
describing (as if by ofNullable
) the result of applying the given mapping function to the value, otherwise returns an empty Optional
.
If the mapping function returns a null
result then this method returns an empty Optional
.
Parameters | |
---|---|
mapper |
Function<in T, out U>!: the mapping function to apply to a value, if present |
<U> |
The type of the value returned from the mapping function |
Return | |
---|---|
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 |
Exceptions | |
---|---|
java.lang.NullPointerException |
if the mapping function is null |
of
static fun <T : Any!> of(value: T): Optional<T>
Returns an Optional
describing the given non-null
value.
Parameters | |
---|---|
value |
T: the value to describe, which must be non-null |
<T> |
the type of the value |
Return | |
---|---|
Optional<T> |
an Optional with the value present |
Exceptions | |
---|---|
java.lang.NullPointerException |
if value is null |
ofNullable
static fun <T : Any!> ofNullable(value: T?): Optional<T>
Returns an Optional
describing the given value, if non-null
, otherwise returns an empty Optional
.
Parameters | |
---|---|
value |
T?: the possibly-null value to describe |
<T> |
the type of the value |
Return | |
---|---|
Optional<T> |
an Optional with a present value if the specified value is non-null , otherwise an empty Optional |
or
fun or(supplier: Supplier<out Optional<out T>!>!): Optional<T>!
If a value is present, returns an Optional
describing the value, otherwise returns an Optional
produced by the supplying function.
Parameters | |
---|---|
supplier |
Supplier<out Optional<out T>!>!: the supplying function that produces an Optional to be returned |
Return | |
---|---|
Optional<T>! |
returns an Optional describing the value of this Optional , if a value is present, otherwise an Optional produced by the supplying function. |
Exceptions | |
---|---|
java.lang.NullPointerException |
if the supplying function is null or produces a null result |
orElse
fun orElse(other: T): T
If a value is present, returns the value, otherwise returns other
.
Parameters | |
---|---|
other |
T: the value to be returned, if no value is present. May be null . |
Return | |
---|---|
T |
the value, if present, otherwise other |
orElseGet
fun orElseGet(supplier: Supplier<out T>!): T
If a value is present, returns the value, otherwise returns the result produced by the supplying function.
Parameters | |
---|---|
supplier |
Supplier<out T>!: the supplying function that produces a value to be returned |
Return | |
---|---|
T |
the value, if present, otherwise the result produced by the supplying function |
Exceptions | |
---|---|
java.lang.NullPointerException |
if no value is present and the supplying function is null |
orElseThrow
fun orElseThrow(): T
If a value is present, returns the value, otherwise throws NoSuchElementException
.
Return | |
---|---|
T |
the non-null value described by this Optional |
Exceptions | |
---|---|
java.util.NoSuchElementException |
if no value is present |
orElseThrow
fun <X : Throwable!> orElseThrow(exceptionSupplier: Supplier<out X>!): T
If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.
Parameters | |
---|---|
<X> |
Type of the exception to be thrown |
exceptionSupplier |
Supplier<out X>!: the supplying function that produces an exception to be thrown |
Return | |
---|---|
T |
the value, if present |
Exceptions | |
---|---|
X |
if no value is present |
java.lang.NullPointerException |
if no value is present and the exception supplying function is null |
stream
fun stream(): Stream<T>!
If a value is present, returns a sequential Stream
containing only that value, otherwise returns an empty Stream
.
Return | |
---|---|
Stream<T>! |
the optional value as a Stream |
toString
fun toString(): String
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.
Return | |
---|---|
String |
the string representation of this instance |