java.lang.Object
java.util.OptionalDouble
A container object which may or may not contain a
double 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.
- API Note:
OptionalDoubleis primarily intended for use as a method return type where there is a clear need to represent "no result." A variable whose type isOptionalDoubleshould never itself benull; it should always point to anOptionalDoubleinstance.- Since:
- 1.8
-
Method Summary
Modifier and TypeMethodDescriptionstatic OptionalDoubleempty()Returns an emptyOptionalDoubleinstance.booleanIndicates whether some other object is "equal to" thisOptionalDouble.doubleIf a value is present, returns the value, otherwise throwsNoSuchElementException.inthashCode()Returns the hash code of the value, if present, otherwise0(zero) if no value is present.voidifPresent(DoubleConsumer action) If a value is present, performs the given action with the value, otherwise does nothing.voidifPresentOrElse(DoubleConsumer action, Runnable emptyAction) If a value is present, performs the given action with the value, otherwise performs the given empty-based action.booleanisEmpty()If a value is not present, returnstrue, otherwisefalse.booleanIf a value is present, returnstrue, otherwisefalse.static OptionalDoubleof(double value) Returns anOptionalDoubledescribing the given value.doubleorElse(double other) If a value is present, returns the value, otherwise returnsother.doubleorElseGet(DoubleSupplier supplier) If a value is present, returns the value, otherwise returns the result produced by the supplying function.doubleIf a value is present, returns the value, otherwise throwsNoSuchElementException.<X extends Throwable>
doubleorElseThrow(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 sequentialDoubleStreamcontaining only that value, otherwise returns an emptyDoubleStream.toString()Returns a non-empty string representation of thisOptionalDoublesuitable for debugging.
-
Method Details
-
empty
Returns an emptyOptionalDoubleinstance. No value is present for thisOptionalDouble.- API Note:
- Though it may be tempting to do so, avoid testing if an object is empty
by comparing with
==or!=against instances returned byOptionalDouble.empty(). There is no guarantee that it is a singleton. Instead, useisEmpty()orisPresent(). - Returns:
- an empty
OptionalDouble.
-
of
Returns anOptionalDoubledescribing the given value.- Parameters:
value- the value to describe- Returns:
- an
OptionalDoublewith the value present
-
getAsDouble
public double getAsDouble()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
OptionalDouble - Throws:
NoSuchElementException- if no value is present
-
isPresent
public boolean isPresent()If a value is present, returnstrue, otherwisefalse.- Returns:
trueif a value is present, otherwisefalse
-
isEmpty
public boolean isEmpty()If a value is not present, returnstrue, otherwisefalse.- Returns:
trueif 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 sequentialDoubleStreamcontaining only that value, otherwise returns an emptyDoubleStream.- API Note:
- This method can be used to transform a
Streamof optional doubles to aDoubleStreamof present doubles:Stream<OptionalDouble> os = .. DoubleStream s = os.flatMapToDouble(OptionalDouble::stream) - Returns:
- the optional value as a
DoubleStream - Since:
- 9
-
orElse
public double orElse(double 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 double orElseThrow()If a value is present, returns the value, otherwise throwsNoSuchElementException.- Returns:
- the value described by this
OptionalDouble - 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" thisOptionalDouble. The other object is considered equal if:- it is also an
OptionalDoubleand; - both instances have no value present or;
- the present values are "equal to" each other via
Double.compare() == 0.
- it is also an
-
hashCode
public int hashCode()Returns the hash code of the value, if present, otherwise0(zero) if no value is present. -
toString
Returns a non-empty string representation of thisOptionalDoublesuitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
-