モジュール java.base
パッケージ java.util

クラスOptionalDouble


  • public final class OptionalDouble
    extends Object
    double値を含む場合と含まない場合があるコンテナオブジェクト。 値が存在する場合、isPresent()trueを返します。 値が存在しない場合、オブジェクトはemptyとみなされ、isPresent()falseを返します。

    orElse() (値がない場合はデフォルト値を返します)およびifPresent() (値が存在する場合にアクションを実行)のような、含まれた値の有無に依存する追加のメソッドが提供されています。

    これは値ベースのクラスで、OptionalDoubleのインスタンスに対して、ID依存操作(参照等価性(==)、IDハッシュ・コード、同期など)を使用すると、予期できない結果になる可能性があり、避けてください。

    APIのノート:
    OptionalDoubleは、主に"検索なし"を明示的に必要とするメソッドの戻り型として使用することを意図しています 型がOptionalDoubleの変数は、それ自体決してnullであってはなりません。常にOptionalDoubleインスタンスを指す必要があります。
    導入されたバージョン:
    1.8
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      static OptionalDouble empty()
      空のOptionalDoubleインスタンスを返します。
      boolean equals​(Object obj)
      他のオブジェクトがこのOptionalDoubleに"等しい"かどうかを示します。
      double getAsDouble()
      値がある場合は値を返し、そうでない場合はNoSuchElementExceptionをスローします。
      int hashCode()
      存在する場合は値のハッシュ・コードを返し、値が存在しない場合は0 (zero)を返します。
      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のノート:
        そのようにするのが賢明かもしれませんが、==OptionalDouble.empty()によって返されたインスタンスを比較することによって、オブジェクトが空であるかどうかをテストしないでください。 シングルトンである保証はありません。 かわりにisPresent()を使用してください。
        戻り値:
        空のOptionalDouble
      • of

        public static OptionalDouble of​(double value)
        指定された値を記述するOptionalDoubleを返します。
        パラメータ:
        value - 説明する値
        戻り値:
        値が存在するOptionalDouble
      • getAsDouble

        public double getAsDouble()
        値がある場合は値を返し、そうでない場合はNoSuchElementExceptionをスローします。
        APIのノート:
        このメソッドの好ましい代替メソッドは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のノート:
        このメソッドは、オプションのdoubleのStreamを現在のdoubleの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のノート:
        引数リストが空である例外コンストラクタへのメソッド参照をサプライヤとして使用できます。 たとえば、IllegalStateException::newなどです。
        型パラメータ:
        X - スローされる例外の型
        パラメータ:
        exceptionSupplier - スローされる例外を生成する供給関数
        戻り値:
        存在する場合は値
        例外:
        X - 値が存在しない場合
        NullPointerException - 値が存在せず、例外を提供する関数がnullの場合
        X extends Throwable
      • equals

        public boolean equals​(Object obj)
        他のオブジェクトがこのOptionalDoubleに"等しい"かどうかを示します。 他方のオブジェクトは次の場合に同等と見なされます。
        • それもOptionalDoubleである、および
        • 両方のインスタンスに存在する値がない、または
        • 存在する値がDouble.compare() == 0によってお互いに等しい。
        オーバーライド:
        equals、クラスObject
        パラメータ:
        obj - 等価性を判定されるオブジェクト
        戻り値:
        true他のオブジェクトが"に等しい"の場合はこのオブジェクト、そうでない場合はfalse
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        デバッグに適したこのOptionalDoubleの空でない文字列表現を返します。 正確な表示フォーマットは未指定であり、実装とバージョンの間で異なることがあります。
        オーバーライド:
        toString、クラスObject
        実装要件:
        値が存在する場合は、結果にその文字列表現が含まれる必要があります。 空で存在するOptionalDoubleは、明確に区別可能でなければなりません。
        戻り値:
        このインスタンスの文字列表現