- java.lang.Object
-  
      - java.util.OptionalDouble
 
-  
       
 public final class OptionalDouble extends Object 容器对象,可能包含也可能不包含double值。 如果存在值,则isPresent()返回true。 如果不存在任何值,则该对象被视为空 ,isPresent()返回false。提供了依赖于是否存在包含值的其他方法,例如 orElse()(如果不存在值则返回默认值)和ifPresent()(如果存在值则执行操作)。这是一个value-based类; 在 OptionalDouble实例上使用身份敏感操作(包括引用相等(==),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。- API Note:
-  
         OptionalDouble主要用作方法返回类型,明确需要表示“无结果”。 类型为OptionalDouble变量本身不应该是null; 它应始终指向OptionalDouble实例。
- 从以下版本开始:
- 1.8
 
-  
        
       -  
             方法摘要所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 static OptionalDoubleempty()返回一个空的OptionalDouble实例。booleanequals(Object obj)指示某个其他对象是否“等于”此OptionalDouble。doublegetAsDouble()如果存在值,则返回该值,否则抛出NoSuchElementException。inthashCode()返回值的哈希码(如果存在),否则0(零)(如果不存在值)。voidifPresent(DoubleConsumer action)如果存在值,则使用值执行给定操作,否则不执行任何操作。voidifPresentOrElse(DoubleConsumer action, Runnable emptyAction)如果存在值,则使用值执行给定操作,否则执行给定的基于空的操作。booleanisEmpty()如果值不存在,则返回true,否则返回false。booleanisPresent()如果存在值,则返回true,否则返回false。static OptionalDoubleof(double value)返回描述给定值的OptionalDouble。doubleorElse(double other)如果存在值,则返回该值,否则返回other。doubleorElseGet(DoubleSupplier supplier)如果存在值,则返回该值,否则返回由供应函数生成的结果。doubleorElseThrow()如果存在值,则返回该值,否则抛出NoSuchElementException。<X extends Throwable>
 doubleorElseThrow(Supplier<? extends X> exceptionSupplier)如果存在值,则返回该值,否则抛出异常提供函数生成的异常。DoubleStreamstream()如果存在值,则返回仅包含该值的顺序DoubleStream,否则返回空DoubleStream。StringtoString()返回适合调试的OptionalDouble的非空字符串表示形式。
 
-  
             
-  
        
       -  
             方法详细信息-  emptypublic static OptionalDouble empty() 返回一个空的OptionalDouble实例。 此OptionalDouble没有值。- API Note:
-  
              虽然它可能是很有诱惑力的话,避免测试如果一个对象是通过比较空==对抗返回实例OptionalDouble.empty()。 无法保证它是单身人士。 相反,请使用isPresent()。
- 结果
- 
               空 
              OptionalDouble。
 
 -  ofpublic static OptionalDouble of(double value) 返回描述给定值的OptionalDouble。- 参数
-  
              value- 要描述的值
- 结果
- 
               值 
              OptionalDouble
 
 -  getAsDoublepublic double getAsDouble() 如果存在值,则返回该值,否则抛出NoSuchElementException。- API Note:
- 
               该方法的优选替代方案是 
              orElseThrow()。
- 结果
- 
               此 
              OptionalDouble描述的值
- 异常
-  
              NoSuchElementException- 如果没有值
 
 -  isPresentpublic boolean isPresent() 如果存在值,则返回true,否则返回false。- 结果
-  
              true如果存在值,否则为false
 
 -  isEmptypublic boolean isEmpty() 如果值不存在,则返回true,否则返回false。- 结果
-  
              true如果值不存在,否则为false
- 从以下版本开始:
- 11
 
 -  ifPresentpublic void ifPresent(DoubleConsumer action) 如果存在值,则使用值执行给定操作,否则不执行任何操作。- 参数
-  
              action- 如果存在值,则执行的操作
- 异常
-  
              NullPointerException- 如果存在值且给定操作为null
 
 -  ifPresentOrElsepublic void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction) 如果存在值,则使用值执行给定操作,否则执行给定的基于空的操作。- 参数
-  
              action- 如果存在值,则执行的操作
-  
              emptyAction- 如果没有值,则执行基于空的操作
- 异常
-  
              NullPointerException- 如果存在值且给定操作为null,或者不存在任何值且给定的基于空的操作为null。
- 从以下版本开始:
- 9
 
 -  streampublic DoubleStream stream() 如果存在值,则返回仅包含该值的顺序DoubleStream,否则返回空DoubleStream。- API Note:
-  
              此方法可用于将Stream的可选双精度DoubleStream为当前双精度的DoubleStream:Stream<OptionalDouble> os = .. DoubleStream s = os.flatMapToDouble(OptionalDouble::stream)
- 结果
- 
               可选值为 
              DoubleStream
- 从以下版本开始:
- 9
 
 -  orElsepublic double orElse(double other) 如果存在值,则返回该值,否则返回other。- 参数
-  
              other- 如果没有值,则返回值
- 结果
- 
               值,如果存在,否则 
              other
 
 -  orElseGetpublic double orElseGet(DoubleSupplier supplier) 如果存在值,则返回该值,否则返回由供应函数生成的结果。- 参数
-  
              supplier- 生成要返回的值的供应函数
- 结果
- 值,如果存在,否则由供应函数产生的结果
- 异常
-  
              NullPointerException- 如果没有值且供应功能为null
 
 -  orElseThrowpublic double orElseThrow() 如果存在值,则返回该值,否则抛出NoSuchElementException。- 结果
- 
               此 
              OptionalDouble描述的值
- 异常
-  
              NoSuchElementException- 如果没有值
- 从以下版本开始:
- 10
 
 -  orElseThrowpublic <X extends Throwable> double orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable 如果存在值,则返回该值,否则抛出异常提供函数生成的异常。- API Note:
-  
              具有空参数列表的异常构造函数的方法引用可用作供应商。 
              例如, IllegalStateException::new
- 参数类型
-  
              X- 要引发的异常的类型
- 参数
-  
              exceptionSupplier- 生成要抛出的异常的供应函数
- 结果
- 价值,如果存在
- 异常
-  
              X- 如果没有值
-  
              NullPointerException- 如果没有值,则异常提供功能为null
-  
              X extends Throwable
 
 -  equalspublic boolean equals(Object obj) 指示某个其他对象是否“等于”此OptionalDouble。 如果符合以下条件,则认为另一个对-  它也是OptionalDouble和;
- 两个实例都没有价值或;
-  现在的值通过Double.compare() == 0相互“等于”。
 - 重写:
-  
              equals类Object
- 参数
-  
              obj- 要进行相等性测试的对象
- 结果
-  
              true如果另一个对象“等于”此对象,否则为false
- 另请参见:
-  
              Object.hashCode(),HashMap
 
-  它也是
 -  hashCodepublic int hashCode() 返回值的哈希码(如果存在),否则0(零)(如果不存在值)。- 重写:
-  
              hashCode类Object
- 结果
- 
               如果没有值,则为当前值的哈希码值或 
              0
- 另请参见:
-  
              Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
 
 
-  
 
-