- java.lang.Object
- 
- java.util.OptionalDouble
 
- 
 public final class OptionalDouble extends Object A container object which may or may not contain adoublevalue. If a value is present,isPresent()returnstrue. If no value is present, the object is considered empty andisPresent()returnsfalse.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) andifPresent()(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 ofOptionalDoublemay have unpredictable results and should be avoided.- 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 is- OptionalDoubleshould never itself be- null; it should always point to an- OptionalDoubleinstance.
- Since:
- 1.8
 
- 
- 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static OptionalDoubleempty()Returns an emptyOptionalDoubleinstance.booleanequals(Object obj)Indicates whether some other object is "equal to" thisOptionalDouble.doublegetAsDouble()If 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.booleanisPresent()If 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.doubleorElseThrow()If 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.DoubleStreamstream()If a value is present, returns a sequentialDoubleStreamcontaining only that value, otherwise returns an emptyDoubleStream.StringtoString()Returns a non-empty string representation of thisOptionalDoublesuitable for debugging.
 
- 
- 
- 
Method Detail- 
emptypublic static OptionalDouble 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 ==against instances returned byOptionalDouble.empty(). There is no guarantee that it is a singleton. Instead, useisPresent().
- Returns:
- an empty OptionalDouble.
 
 - 
ofpublic static OptionalDouble of(double value) Returns anOptionalDoubledescribing the given value.- Parameters:
- value- the value to describe
- Returns:
- an OptionalDoublewith the value present
 
 - 
getAsDoublepublic 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
 
 - 
isPresentpublic boolean isPresent() If a value is present, returnstrue, otherwisefalse.- Returns:
- trueif a value is present, otherwise- false
 
 - 
isEmptypublic boolean isEmpty() If a value is not present, returnstrue, otherwisefalse.- Returns:
- trueif a value is not present, otherwise- false
- Since:
- 11
 
 - 
ifPresentpublic void ifPresent(DoubleConsumer action) 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 is- null
 
 - 
ifPresentOrElsepublic void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction) 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 present
- emptyAction- 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.
- Since:
- 9
 
 - 
streampublic DoubleStream 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
 
 - 
orElsepublic 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
 
 - 
orElseGetpublic double orElseGet(DoubleSupplier supplier) 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 is- null
 
 - 
orElseThrowpublic 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
 
 - 
orElseThrowpublic <X extends Throwable> double orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable 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 present
- NullPointerException- if no value is present and the exception supplying function is- null
- X extends Throwable
 
 - 
equalspublic boolean equals(Object obj) 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.
 - Overrides:
- equalsin class- Object
- Parameters:
- obj- an object to be tested for equality
- Returns:
- trueif the other object is "equal to" this object otherwise- false
- See Also:
- Object.hashCode(),- HashMap
 
- it is also an 
 - 
hashCodepublic int hashCode() Returns the hash code of the value, if present, otherwise0(zero) if no value is present.- Overrides:
- hashCodein class- Object
- Returns:
- hash code value of the present value or 0if no value is present
- See Also:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 - 
toStringpublic String toString() Returns a non-empty string representation of thisOptionalDoublesuitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
 
- 
 
-