模块  java.base
软件包  java.util

Class OptionalDouble


  • public final class OptionalDoubleextends Object
    容器对象,可能包含也可能不包含double值。 如果存在值,则isPresent()返回true 如果不存在任何值,则该对象被视为isPresent()返回false

    提供了依赖于是否存在包含值的其他方法,例如orElse() (如果不存在值则返回默认值)和ifPresent() (如果存在值则执行操作)。

    这是一个value-based类; OptionalDouble实例上使用身份敏感操作(包括引用相等( == ),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。

    API Note:
    OptionalDouble主要用作方法返回类型,明确需要表示“无结果”。 类型为OptionalDouble变量本身不应该是null ; 它应始终指向OptionalDouble实例。
    从以下版本开始:
    1.8
    • 方法摘要

      所有方法  静态方法  实例方法 具体的方法 
      变量和类型 方法 描述
      static OptionalDouble empty()
      返回一个空的 OptionalDouble实例。
      boolean equals​(Object obj)
      指示某个其他对象是否“等于”此 OptionalDouble
      double getAsDouble()
      如果存在值,则返回该值,否则抛出 NoSuchElementException
      int hashCode()
      返回值的哈希码(如果存在),否则 0 (零)(如果不存在值)。
      void ifPresent​(DoubleConsumer action)
      如果存在值,则使用值执行给定操作,否则不执行任何操作。
      void ifPresentOrElse​(DoubleConsumer action, Runnable emptyAction)
      如果存在值,则使用值执行给定操作,否则执行给定的基于空的操作。
      boolean isEmpty()
      如果值不存在,则返回 true ,否则返回 false
      boolean isPresent()
      如果存在值,则返回 true ,否则返回 false
      static OptionalDouble of​(double value)
      返回描述给定值的 OptionalDouble
      double orElse​(double other)
      如果存在值,则返回该值,否则返回 other
      double orElseGet​(DoubleSupplier supplier)
      如果存在值,则返回该值,否则返回由供应函数生成的结果。
      double orElseThrow()
      如果存在值,则返回该值,否则抛出 NoSuchElementException
      <X extends Throwable>
      double
      orElseThrow​(Supplier<? extends X> exceptionSupplier)
      如果存在值,则返回该值,否则抛出异常提供函数生成的异常。
      DoubleStream stream()
      如果存在值,则返回仅包含该值的顺序DoubleStream ,否则返回空DoubleStream
      String toString()
      返回适合调试的 OptionalDouble的非空字符串表示形式。
    • 方法详细信息

      • empty

        public static OptionalDouble empty()
        返回一个空的OptionalDouble实例。 OptionalDouble没有值。
        API Note:
        虽然它可能是很有诱惑力的话,避免测试如果一个对象是通过比较空==对抗返回实例OptionalDouble.empty() 无法保证它是单身人士。 相反,请使用isPresent()
        结果
        OptionalDouble
      • of

        public static OptionalDouble of​(double value)
        返回描述给定值的 OptionalDouble
        参数
        value - 要描述的值
        结果
        OptionalDouble
      • getAsDouble

        public double getAsDouble()
        如果存在值,则返回该值,否则抛出 NoSuchElementException
        API Note:
        该方法的优选替代方案是 orElseThrow()
        结果
        OptionalDouble描述的值
        异常
        NoSuchElementException - 如果没有值
      • isPresent

        public boolean isPresent()
        如果存在值,则返回 true ,否则返回 false
        结果
        true如果存在值,否则为 false
      • isEmpty

        public boolean isEmpty()
        如果值不存在,则返回 true ,否则返回 false
        结果
        true如果值不存在,否则为 false
        从以下版本开始:
        11
      • ifPresent

        public void ifPresent​(DoubleConsumer action)
        如果存在值,则使用值执行给定操作,否则不执行任何操作。
        参数
        action - 如果存在值,则执行的操作
        异常
        NullPointerException - 如果存在值且给定操作为 null
      • ifPresentOrElse

        public void ifPresentOrElse​(DoubleConsumer action,                            Runnable emptyAction)
        如果存在值,则使用值执行给定操作,否则执行给定的基于空的操作。
        参数
        action - 如果存在值,则执行的操作
        emptyAction - 如果没有值,则执行基于空的操作
        异常
        NullPointerException - 如果存在值且给定操作为 null ,或者不存在任何值且给定的基于空的操作为 null
        从以下版本开始:
        9
      • stream

        public DoubleStream stream()
        如果存在值,则返回仅包含该值的顺序DoubleStream ,否则返回空DoubleStream
        API Note:
        此方法可用于将Stream的可选双精度DoubleStream为当前双精度的DoubleStream
           Stream<OptionalDouble> os = .. DoubleStream s = os.flatMapToDouble(OptionalDouble::stream)  
        结果
        可选值为 DoubleStream
        从以下版本开始:
        9
      • orElse

        public double orElse​(double other)
        如果存在值,则返回该值,否则返回 other
        参数
        other - 如果没有值,则返回值
        结果
        值,如果存在,否则 other
      • orElseGet

        public double orElseGet​(DoubleSupplier supplier)
        如果存在值,则返回该值,否则返回由供应函数生成的结果。
        参数
        supplier - 生成要返回的值的供应函数
        结果
        值,如果存在,否则由供应函数产生的结果
        异常
        NullPointerException - 如果没有值且供应功能为 null
      • orElseThrow

        public double orElseThrow()
        如果存在值,则返回该值,否则抛出 NoSuchElementException
        结果
        OptionalDouble描述的值
        异常
        NoSuchElementException - 如果没有值
        从以下版本开始:
        10
      • orElseThrow

        public <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
      • equals

        public boolean equals​(Object obj)
        指示某个其他对象是否“等于”此OptionalDouble 如果符合以下条件,则认为另一个对
        • 它也是OptionalDouble和;
        • 两个实例都没有价值或;
        • 现在的值通过Double.compare() == 0相互“等于”。
        重写:
        equalsObject
        参数
        obj - 要进行相等性测试的对象
        结果
        true如果另一个对象“等于”此对象,否则为 false
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回适用于调试的OptionalDouble的非空字符串表示形式。 确切的表示格式未指定,可能在实现和版本之间有所不同。
        重写:
        toString在类 Object
        实现要求:
        如果存在值,则结果必须在结果中包含其字符串表示形式。 空和现在OptionalDouble必须明确可区分。
        结果
        此实例的字符串表示形式