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

クラスOptionalLong


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

    orElse() (値が存在しない場合はデフォルト値を返す)やifPresent() (値が存在する場合はアクションを実行する)など、含まれる値の有無に依存するその他のメソッドが提供されます。

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

    APIのノート:
    OptionalLongは、主に「結果なし」を表す必要がある明確なメソッド戻り型として使用することを目的としています。 型がOptionalLongの変数は、それ自体がnullではなく、常にOptionalLongインスタンスを指す必要があります。
    導入されたバージョン:
    1.8
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      static OptionalLong empty()
      空のOptionalLongインスタンスを返します。
      boolean equals​(Object obj)
      他のオブジェクトがこのOptionalLongと等しいかどうかを示します。
      long getAsLong()
      値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。
      int hashCode()
      値のハッシュ・コード(存在する場合)を返します。それ以外の場合、値が存在しない場合は0 (ゼロ)を返します。
      void ifPresent​(LongConsumer action)
      値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は何も実行しません。
      void ifPresentOrElse​(LongConsumer action, Runnable emptyAction)
      値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は指定された空ベースのアクションを実行します。
      boolean isEmpty()
      値が存在しない場合はtrue、それ以外の場合falseを返します。
      boolean isPresent()
      値が存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。
      static OptionalLong of​(long value)
      指定された値を記述するOptionalLongを返します。
      long orElse​(long other)
      値が存在する場合は値を返し、それ以外の場合はotherを返します。
      long orElseGet​(LongSupplier supplier)
      値が存在する場合は値を返し、それ以外の場合は供給関数によって生成された結果を返します。
      long orElseThrow()
      値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。
      <X extends Throwable>
      long
      orElseThrow​(Supplier<? extends X> exceptionSupplier)
      値が存在する場合はその値を返し、それ以外の場合は例外指定関数によって生成された例外をスローします。
      LongStream stream()
      値が存在する場合は、その値のみを含む順次LongStreamを戻し、それ以外の場合は空のLongStreamを戻します。
      String toString()
      デバッグに適した、このOptionalLongの空でない文字列表現を返します。
    • メソッドの詳細

      • empty

        public static OptionalLong empty()
        空のOptionalLongインスタンスを返します。 このOptionalLongには値がありません。
        APIのノート:
        オブジェクトが空であるかどうかのテストは、OptionalLong.empty()によって返されるインスタンスに対して==と比較することで避けてください。 シングルトンである保証はありません。 かわりにisPresent()を使用してください。
        戻り値:
        空のOptionalLong
      • of

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

        public long getAsLong()
        値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。
        APIのノート:
        この方法に代わる推奨方法は、orElseThrow()です。
        戻り値:
        このOptionalLongによって記述される値
        例外:
        NoSuchElementException - 値が存在しない場合
      • isPresent

        public boolean isPresent()
        値が存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。
        戻り値:
        値が存在する場合はtrue、それ以外の場合はfalse
      • isEmpty

        public boolean isEmpty()
        値が存在しない場合はtrue、それ以外の場合falseを返します。
        戻り値:
        値が存在しない場合はtrue、それ以外の場合はfalse
        導入されたバージョン:
        11
      • ifPresent

        public void ifPresent​(LongConsumer action)
        値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は何も実行しません。
        パラメータ:
        action - 実行されるアクション(値が存在する場合)
        例外:
        NullPointerException - 値が存在し、指定されたアクションがnullの場合
      • ifPresentOrElse

        public void ifPresentOrElse​(LongConsumer action,
                                    Runnable emptyAction)
        値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は指定された空ベースのアクションを実行します。
        パラメータ:
        action - 実行されるアクション(値が存在する場合)
        emptyAction - 値が存在しない場合、実行する空ベースのアクション
        例外:
        NullPointerException - 値が存在し、指定されたアクションがnullの場合、または値が存在せず、指定された空ベースのアクションがnullの場合。
        導入されたバージョン:
        9
      • stream

        public LongStream stream()
        値が存在する場合は、その値のみを含む順次LongStreamを戻し、それ以外の場合は空のLongStreamを戻します。
        APIのノート:
        このメソッドは、オプションのlongのStreamを現在のlongのLongStreamに変換するために使用できます。
        
             Stream<OptionalLong> os = ..
             LongStream s = os.flatMapToLong(OptionalLong::stream)
         
        戻り値:
        LongStreamのオプション値
        導入されたバージョン:
        9
      • orElse

        public long orElse​(long other)
        値が存在する場合は値を返し、それ以外の場合はotherを返します。
        パラメータ:
        other - 値が存在しない場合、返される値
        戻り値:
        値(存在する場合)、それ以外の場合はother
      • orElseGet

        public long orElseGet​(LongSupplier supplier)
        値が存在する場合は値を返し、それ以外の場合は供給関数によって生成された結果を返します。
        パラメータ:
        supplier - 返される値を生成する指定関数
        戻り値:
        値(存在する場合)、それ以外の場合、供給機能によって生成される結果
        例外:
        NullPointerException - 値がなく、指定関数がnullの場合
      • orElseThrow

        public long orElseThrow()
        値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。
        戻り値:
        このOptionalLongによって記述される値
        例外:
        NoSuchElementException - 値が存在しない場合
        導入されたバージョン:
        10
      • orElseThrow

        public <X extends Throwable> long orElseThrow​(Supplier<? extends X> exceptionSupplier)
                                               throws X
        値が存在する場合はその値を返し、それ以外の場合は例外指定関数によって生成された例外をスローします。
        APIのノート:
        引数リストが空である例外コンストラクタへのメソッド参照をサプライヤとして使用できます。 たとえば、IllegalStateException::newなどです。
        型パラメータ:
        X - スローされる例外の型
        パラメータ:
        exceptionSupplier - スローされる例外を生成する指定関数
        戻り値:
        値が存在する場合
        例外:
        X - 値が存在しない場合
        NullPointerException - 値が存在せず、関数を指定している例外がnullの場合
        X extends Throwable
      • equals

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

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