OptionalLong
public final class OptionalLong
extends Object
java.lang.Object | |
↳ | java.util.OptionalLong |
A container object which may or may not contain a long
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 OptionalLong | empty() Returns an empty |
boolean | equals(Object obj) Indicates whether some other object is "equal to" this |
long | getAsLong() If a value is present, returns the value, otherwise throws |
int | hashCode() Returns the hash code of the value, if present, otherwise |
void | ifPresent(LongConsumer action) If a value is present, performs the given action with the value, otherwise does nothing. |
void | ifPresentOrElse(LongConsumer action, Runnable emptyAction) 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 | isPresent() If a value is present, returns |
static OptionalLong | of(long value) Returns an |
long | orElse(long other) If a value is present, returns the value, otherwise returns |
long | orElseGet(LongSupplier supplier) If a value is present, returns the value, otherwise returns the result produced by the supplying function. |
<X extends Throwable> long | orElseThrow(Supplier<? extends X> exceptionSupplier) If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function. |
long | orElseThrow() If a value is present, returns the value, otherwise throws |
LongStream | stream() If a value is present, returns a sequential |
String | toString() Returns a non-empty string representation of this |
Inherited methods | |
---|---|
Public methods
empty
public static OptionalLong empty ()
Returns an empty OptionalLong
instance. No value is present for this OptionalLong
.
API Note:
- Though it may be tempting to do so, avoid testing if an object is empty by comparing with
==
or!=
against instances returned byOptionalLong.empty()
. There is no guarantee that it is a singleton. Instead, useisEmpty()
orisPresent()
.
Returns | |
---|---|
OptionalLong | an empty OptionalLong . |
equals
public boolean equals (Object obj)
Indicates whether some other object is "equal to" this OptionalLong
. The other object is considered equal if:
- it is also an
OptionalLong
and; - both instances have no value present or;
- the present values are "equal to" each other via
==
.
Parameters | |
---|---|
obj | Object : an object to be tested for equality |
Returns | |
---|---|
boolean | true if the other object is "equal to" this object otherwise false |
getAsLong
public long getAsLong ()
If a value is present, returns the value, otherwise throws NoSuchElementException
.
API Note:
- The preferred alternative to this method is
orElseThrow()
.
Returns | |
---|---|
long | the value described by this OptionalLong |
Throws | |
---|---|
NoSuchElementException | if no value is present |
hashCode
public int hashCode ()
Returns the hash code of the value, if present, otherwise 0
(zero) if no value is present.
Returns | |
---|---|
int | hash code value of the present value or 0 if no value is present |
ifPresent
public void ifPresent (LongConsumer action)
If a value is present, performs the given action with the value, otherwise does nothing.
Parameters | |
---|---|
action | LongConsumer : the action to be performed, if a value is present |
Throws | |
---|---|
NullPointerException | if value is present and the given action is null |
ifPresentOrElse
public void ifPresentOrElse (LongConsumer action, Runnable emptyAction)
If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
Parameters | |
---|---|
action | LongConsumer : the action to be performed, if a value is present |
emptyAction | Runnable : the empty-based action to be performed, if no value is present |
Throws | |
---|---|
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
public boolean isEmpty ()
If a value is not present, returns true
, otherwise false
.
Returns | |
---|---|
boolean | true if a value is not present, otherwise false |
isPresent
public boolean isPresent ()
If a value is present, returns true
, otherwise false
.
Returns | |
---|---|
boolean | true if a value is present, otherwise false |
of
public static OptionalLong of (long value)
Returns an OptionalLong
describing the given value.
Parameters | |
---|---|
value | long : the value to describe |
Returns | |
---|---|
OptionalLong | an OptionalLong with the value present |
orElse
public long orElse (long other)
If a value is present, returns the value, otherwise returns other
.
Parameters | |
---|---|
other | long : the value to be returned, if no value is present |
Returns | |
---|---|
long | the value, if present, otherwise other |
orElseGet
public long orElseGet (LongSupplier supplier)
If a value is present, returns the value, otherwise returns the result produced by the supplying function.
Parameters | |
---|---|
supplier | LongSupplier : the supplying function that produces a value to be returned |
Returns | |
---|---|
long | the value, if present, otherwise the result produced by the supplying function |
Throws | |
---|---|
NullPointerException | if no value is present and the supplying function is null |
orElseThrow
public long orElseThrow (Supplier<? extends X> exceptionSupplier)
If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.
API Note:
- A method reference to the exception constructor with an empty argument list can be used as the supplier. For example,
IllegalStateException::new
Parameters | |
---|---|
exceptionSupplier | Supplier : the supplying function that produces an exception to be thrown |
Returns | |
---|---|
long | the value, if present |
Throws | |
---|---|
| if no value is present |
NullPointerException | if no value is present and the exception supplying function is null |
Throwable |
orElseThrow
public long orElseThrow ()
If a value is present, returns the value, otherwise throws NoSuchElementException
.
Returns | |
---|---|
long | the value described by this OptionalLong |
Throws | |
---|---|
NoSuchElementException | if no value is present |
stream
public LongStream stream ()
If a value is present, returns a sequential LongStream
containing only that value, otherwise returns an empty LongStream
.
API Note:
- This method can be used to transform a
Stream
of optional longs to anLongStream
of present longs:Stream<OptionalLong> os = .. LongStream s = os.flatMapToLong(OptionalLong::stream)
Returns | |
---|---|
LongStream | the optional value as an LongStream |
toString
public String toString ()
Returns a non-empty string representation of this OptionalLong
suitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
Implementation Requirements:
- If a value is present the result must include its string representation in the result. Empty and present
OptionalLong
s must be unambiguously differentiable.
Returns | |
---|---|
String | the string representation of this instance |