Class OptionalLong
java.lang.Object
java.util.OptionalLong
A container object which may or may not contain a
long
value. If a value is present,isPresent()
returnstrue
. If no value is present, the object is consideredempty andisPresent()
returnsfalse
.Additional methods that depend on the presence or absence of a contained value are provided, such asorElse()
(returns a default value if no value is present) andifPresent()
(performs an action if a value is present).
This is avalue-based class; programmers should treat instances that areequal as interchangeable and should not use instances for synchronization, or unpredictable behavior may occur. For example, in a future release, synchronization may fail.
- 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 isOptionalLong
should never itself benull
; it should always point to anOptionalLong
instance.- Since:
- 1.8
Method Summary
Modifier and TypeMethodDescriptionstaticOptionalLong
empty()
Returns an emptyOptionalLong
instance.boolean
Indicates whether some other object is "equal to" thisOptionalLong
.long
If a value is present, returns the value, otherwise throwsNoSuchElementException
.int
hashCode()
Returns the hash code of the value, if present, otherwise0
(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, returnstrue
, otherwisefalse
.boolean
If a value is present, returnstrue
, otherwisefalse
.staticOptionalLong
of
(long value) Returns anOptionalLong
describing the given value.long
orElse
(long other) If a value is present, returns the value, otherwise returnsother
.long
orElseGet
(LongSupplier supplier) If a value is present, returns the value, otherwise returns the result produced by the supplying function.long
If a value is present, returns the value, otherwise throwsNoSuchElementException
.<X extendsThrowable>
longorElseThrow
(Supplier<? extends X> exceptionSupplier) If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.stream()
If a value is present, returns a sequentialLongStream
containing only that value, otherwise returns an emptyLongStream
.toString()
Returns a non-empty string representation of thisOptionalLong
suitable for debugging.
Method Details
empty
Returns an emptyOptionalLong
instance. No value is present for thisOptionalLong
.- 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:
- an empty
OptionalLong
.
of
Returns anOptionalLong
describing the given value.- Parameters:
value
- the value to describe- Returns:
- an
OptionalLong
with the value present
getAsLong
public long getAsLong()If a value is present, returns the value, otherwise throwsNoSuchElementException
.- API Note:
- The preferred alternative to this method is
orElseThrow()
. - Returns:
- the value described by this
OptionalLong
- Throws:
NoSuchElementException
- if no value is present
isPresent
public boolean isPresent()If a value is present, returnstrue
, otherwisefalse
.- Returns:
true
if a value is present, otherwisefalse
isEmpty
public boolean isEmpty()If a value is not present, returnstrue
, otherwisefalse
.- Returns:
true
if a value is not present, otherwisefalse
- Since:
- 11
ifPresent
If a value is present, performs the given action with the value, otherwise does nothing.- Parameters:
action
- the action to be performed, if a value is present- Throws:
NullPointerException
- if value is present and the given action isnull
ifPresentOrElse
If a value is present, performs the given action with the value, otherwise performs the given empty-based action.- Parameters:
action
- the action to be performed, if a value is presentemptyAction
- the empty-based action to be performed, if no value is present- Throws:
NullPointerException
- if a value is present and the given action isnull
, or no value is present and the given empty-based action isnull
.- Since:
- 9
stream
If a value is present, returns a sequentialLongStream
containing only that value, otherwise returns an emptyLongStream
.- 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:
- the optional value as an
LongStream
- Since:
- 9
orElse
public long orElse(long other) If a value is present, returns the value, otherwise returnsother
.- Parameters:
other
- the value to be returned, if no value is present- Returns:
- the value, if present, otherwise
other
orElseGet
If a value is present, returns the value, otherwise returns the result produced by the supplying function.- Parameters:
supplier
- the supplying function that produces a value to be returned- Returns:
- the value, if present, otherwise the result produced by the supplying function
- Throws:
NullPointerException
- if no value is present and the supplying function isnull
orElseThrow
public long orElseThrow()If a value is present, returns the value, otherwise throwsNoSuchElementException
.- Returns:
- the value described by this
OptionalLong
- Throws:
NoSuchElementException
- if no value is present- Since:
- 10
orElseThrow
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
- Type Parameters:
X
- Type of the exception to be thrown- Parameters:
exceptionSupplier
- the supplying function that produces an exception to be thrown- Returns:
- the value, if present
- Throws:
X
- if no value is presentNullPointerException
- if no value is present and the exception supplying function isnull
equals
Indicates whether some other object is "equal to" thisOptionalLong
. 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
==
.
- it is also an
hashCode
toString
Returns a non-empty string representation of thisOptionalLong
suitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.