public final class OptionalDouble extends Object
double
value.
If a value is present, isPresent()
will return true
and
getAsDouble()
will return the value.
Additional methods that depend on the presence or absence of a contained
value are provided, such as orElse()
(return a default value if value not present) and
ifPresent()
(perform an
action if the 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
OptionalDouble
may have unpredictable results and should be avoided.
Modifier and Type | Method and Description |
---|---|
static OptionalDouble |
empty()
Returns an empty
OptionalDouble instance. |
boolean |
equals(Object obj)
Indicates whether some other object is "equal to" this OptionalDouble.
|
double |
getAsDouble()
If a value is present in this
OptionalDouble , returns the value,
otherwise throws NoSuchElementException . |
int |
hashCode()
Returns the hash code value of the present value, if any, or 0 (zero) if
no value is present.
|
void |
ifPresent(DoubleConsumer action)
If a value is present, perform the given action with the value,
otherwise do nothing.
|
void |
ifPresentOrElse(DoubleConsumer action,
Runnable emptyAction)
If a value is present, perform the given action with the value,
otherwise perform the given empty-based action.
|
boolean |
isPresent()
Return
true if there is a value present, otherwise false . |
static OptionalDouble |
of(double value)
Return an
OptionalDouble with the specified value present. |
double |
orElse(double other)
Return the value if present, otherwise return
other . |
double |
orElseGet(DoubleSupplier other)
Return the value if present, otherwise invoke
other and return
the result of that invocation. |
<X extends Throwable> |
orElseThrow(Supplier<? extends X> exceptionSupplier)
Return the contained value, if present, otherwise throw an exception
to be created by the provided supplier.
|
DoubleStream |
stream()
If a value is present return a sequential
DoubleStream containing
only that value, otherwise return an empty DoubleStream . |
String |
toString()
Returns a non-empty string representation of this object suitable for
debugging.
|
public static OptionalDouble empty()
OptionalDouble
instance. No value is present for this
OptionalDouble.
API Note:
Though it may be tempting to do so, avoid testing if an object
is empty by comparing with ==
against instances returned by
Option.empty()
. There is no guarantee that it is a singleton.
Instead, use isPresent()
.
OptionalDouble
.public static OptionalDouble of(double value)
OptionalDouble
with the specified value present.value
- the value to be presentOptionalDouble
with the value presentpublic double getAsDouble()
OptionalDouble
, returns the value,
otherwise throws NoSuchElementException
.OptionalDouble
NoSuchElementException
- if there is no value presentisPresent()
public boolean isPresent()
true
if there is a value present, otherwise false
.true
if there is a value present, otherwise false
public void ifPresent(DoubleConsumer action)
action
- the action to be performed if a value is presentNullPointerException
- if a value is present and action
is
nullpublic void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction)
action
- the action to be performed if a value is presentemptyAction
- the empty-based action to be performed if a value is
not presentNullPointerException
- if a value is present and action
is
null, or a value is not present and emptyAction
is null.public DoubleStream stream()
DoubleStream
containing
only that value, otherwise return an empty DoubleStream
.
API Note:
This method can be used to transform a Stream
of
optional doubles to a DoubleStream
of present doubles:
Stream<OptionalDouble> os = ..
DoubleStream s = os.flatMapToDouble(OptionalDouble::stream)
DoubleStream
public double orElse(double other)
other
.other
- the value to be returned if there is no value presentother
public double orElseGet(DoubleSupplier other)
other
and return
the result of that invocation.other
- a DoubleSupplier
whose result is returned if no value
is presentother.getAsDouble()
NullPointerException
- if value is not present and other
is
nullpublic <X extends Throwable> double 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 supplier which will return the exception to
be thrownX
- if there is no value presentNullPointerException
- if no value is present and
exceptionSupplier
is nullX extends Throwable
public boolean equals(Object obj)
OptionalDouble
and;
Double.compare() == 0
.
public int hashCode()
public String toString()
Implementation Requirements:
If a value is present the result must include its string
representation in the result. Empty and present instances must be
unambiguously differentiable.
Copyright © 2015. All rights reserved.