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

クラスOptionalLong

java.lang.Object
java.util.OptionalLong

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

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

これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。

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

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

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • メソッドの詳細

    • empty

      public static OptionalLong empty()
      空のOptionalLongインスタンスを返します。 このOptionalLongには値はありません。
      APIのノート:
      これは一時的なものですが、OptionalLong.empty()によって返されたインスタンスと==または!=を比較して、オブジェクトが空であるかどうかをテストしないでください。 シングルトンである保証はありません。 かわりに、isEmpty()または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の場合
    • equals

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

      public int hashCode()
      存在する場合は値のハッシュ・コードを返し、値が存在しない場合は0 (zero)を返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      現在値のハッシュ・コード値または値が存在しない場合の0
      関連項目:
    • toString

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