public final class OptionalLong extends Object
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; use of identity-sensitive operations (including reference equality
(==
), identity hash code, or synchronization) on instances of
OptionalLong
may have unpredictable results and should be avoided.
API Note:
OptionalLong
is primarily intended for use as a method return type where
there is a clear need to represent "no result". A variable whose type is
OptionalLong
should never itself be null
; it should always point
to an OptionalLong
instance.
Modifier and Type | Method and Description |
---|---|
static OptionalLong |
empty()
Returns an empty
OptionalLong instance. |
boolean |
equals(Object obj)
Indicates whether some other object is "equal to" this
OptionalLong . |
long |
getAsLong()
If a value is present, returns the value, otherwise throws
NoSuchElementException . |
int |
hashCode()
Returns the hash code of the value, if present, otherwise
0
(zero) if no value is present. |
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
true , otherwise
false . |
boolean |
isPresent()
If a value is present, returns
true , otherwise false . |
static OptionalLong |
of(long value)
Returns an
OptionalLong describing the given value. |
long |
orElse(long other)
If a value is present, returns the value, otherwise returns
other . |
long |
orElseGet(LongSupplier supplier)
If a value is present, returns the value, otherwise returns the result
produced by the supplying function.
|
long |
orElseThrow()
If a value is present, returns the value, otherwise throws
NoSuchElementException . |
<X extends Throwable> |
orElseThrow(Supplier<? extends X> exceptionSupplier)
If a value is present, returns the value, otherwise throws an exception
produced by the exception supplying function.
|
LongStream |
stream()
If a value is present, returns a sequential
LongStream containing
only that value, otherwise returns an empty LongStream . |
String |
toString()
Returns a non-empty string representation of this
OptionalLong
suitable for debugging. |
public static OptionalLong 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 by
OptionalLong.empty()
. There is no guarantee that it is a singleton.
Instead, use isEmpty()
or isPresent()
.
OptionalLong
.public static OptionalLong of(long value)
OptionalLong
describing the given value.value
- the value to describeOptionalLong
with the value presentpublic long getAsLong()
NoSuchElementException
.
API Note:
The preferred alternative to this method is orElseThrow()
.
OptionalLong
NoSuchElementException
- if no value is presentpublic boolean isPresent()
true
, otherwise false
.true
if a value is present, otherwise false
public boolean isEmpty()
true
, otherwise
false
.true
if a value is not present, otherwise false
public void ifPresent(LongConsumer action)
action
- the action to be performed, if a value is presentNullPointerException
- if value is present and the given action is
null
public void ifPresentOrElse(LongConsumer action, Runnable emptyAction)
action
- the action to be performed, if a value is presentemptyAction
- the empty-based action to be performed, if no value is
presentNullPointerException
- if a value is present and the given action
is null
, or no value is present and the given empty-based action
is null
.public LongStream stream()
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 a LongStream
of present longs:
Stream<OptionalLong> os = ..
LongStream s = os.flatMapToLong(OptionalLong::stream)
LongStream
public long orElse(long other)
other
.other
- the value to be returned, if no value is presentother
public long orElseGet(LongSupplier supplier)
supplier
- the supplying function that produces a value to be returnedNullPointerException
- if no value is present and the supplying
function is null
public long orElseThrow()
NoSuchElementException
.OptionalLong
NoSuchElementException
- if no value is presentpublic <X extends Throwable> long orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
API Note:
A method reference to the exception constructor with an empty argument
list can be used as the supplier. For example,
IllegalStateException::new
X
- Type of the exception to be thrownexceptionSupplier
- the supplying function that produces an
exception to be thrownX
- if no value is presentNullPointerException
- if no value is present and the exception
supplying function is null
X extends Throwable
public boolean equals(Object obj)
OptionalLong
. The other object is considered equal if:
OptionalLong
and;
==
.
public int hashCode()
0
(zero) if no value is present.public String toString()
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.
Copyright © 2021. All rights reserved.