クラスOptional<T>
java.lang.Object
java.util.Optional<T>
- 型パラメータ:
- T- 価値のタイプ
public final class Optional<T> extends Object
null以外の値を含む場合と含まない場合があるコンテナ・オブジェクト。 値が存在する場合、isPresent()はtrueを返します。 値が存在しない場合、オブジェクトはemptyとみなされ、isPresent()はfalseを返します。 
 orElse() (値がない場合はデフォルト値を返します)やifPresent() (値が存在する場合にアクションを実行)など、含まれている値の有無に依存する追加のメソッドが提供されます。
 
これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。
- APIのノート:
- Optionalは、主に、"結果なし、"を表す明確な必要があり、- nullを使用するとエラーが発生する可能性があるメソッドの戻り型として使用することを目的としています。 型が- Optionalの変数は、それ自体が- nullになることはなく、常に- Optionalインスタンスを指す必要があります。
- 導入されたバージョン:
- 1.8
- 
メソッドのサマリー修飾子と型メソッド説明static <T> Optional<T> empty()空のOptionalインスタンスを返します。boolean他のオブジェクトがこのOptionalに"に等しい"かどうかを示します。値が存在し、その値が指定された述語と一致する場合は、値を記述するOptionalを戻し、それ以外の場合は空のOptionalを戻します。<U> Optional<U> 値が存在する場合は、指定されたOptional-bearingマッピング関数を値に適用した結果を返し、それ以外の場合は空のOptionalを返します。get()値が存在する場合は値を返し、存在しない場合はNoSuchElementExceptionをスローします。inthashCode()値のハッシュ・コード(存在する場合)を返します。値がない場合は0(zero)を返します。void値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は何も実行しません。voidifPresentOrElse(Consumer<? super T> action, Runnable emptyAction) 値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は、指定された空ベースのアクションを実行します。booleanisEmpty()値が存在しない場合はtrue、それ以外の場合falseを返します。boolean値が存在する場合、true、それ以外の場合はfalseを返します。<U> Optional<U> 値が存在する場合は、指定されたマッピング関数を値に適用した結果として(ofNullable(T)のように)を記述するOptionalを返し、それ以外の場合は空のOptionalを返します。static <T> Optional<T> of(T value) 指定された非null値を記述するOptionalを返します。static <T> Optional<T> ofNullable(T value) null以外の場合は、指定された値を記述するOptionalを返します。それ以外の場合は、空のOptionalを返します。値が存在する場合は、値を記述するOptionalを戻し、それ以外の場合は、指定関数によって生成されたOptionalを戻します。値が存在する場合は値を返し、存在しない場合はotherを返します。値が存在する場合は値を返し、それ以外の場合は供給関数によって生成された結果を返します。値が存在する場合は値を返し、存在しない場合はNoSuchElementExceptionをスローします。orElseThrow(Supplier<? extends X> exceptionSupplier) 値が存在する場合は値を返し、それ以外の場合は例外指定関数によって生成された例外をスローします。stream()値が存在する場合は、その値のみを含む順次Streamを戻し、それ以外の場合は空のStreamを戻します。toString()デバッグに適したこのOptionalの空でない文字列表現を返します。
- 
メソッドの詳細- 
emptypublic static <T> Optional<T> empty()空のOptionalインスタンスを返します。 このOptionalには値はありません。- APIのノート:
- これは一時的なものですが、Optional.empty()によって返されたインスタンスと==または!=を比較して、オブジェクトが空であるかどうかをテストしないでください。 シングルトンである保証はありません。 かわりに、isEmpty()またはisPresent()を使用してください。
- 型パラメータ:
- T- 存在しない値の型
- 戻り値:
- 空のOptional。
 
- 
ofpublic static <T> Optional<T> of(T value) 指定された非null値を記述するOptionalを返します。- 型パラメータ:
- T- 値の型
- パラメータ:
- value- 記述する値。- null以外である必要があります
- 戻り値:
- 存在する値でのOptional
- 例外:
- NullPointerException- 値が- nullの場合
 
- 
ofNullablepublic static <T> Optional<T> ofNullable(T value) null以外の場合は、指定された値を記述するOptionalを返します。それ以外の場合は、空のOptionalを返します。- 型パラメータ:
- T- 値の型
- パラメータ:
- value- 説明する- nullの値
- 戻り値:
- 指定された値が非nullの場合は現在の値を持つOptional、それ以外の場合は空のOptional
 
- 
getpublic T get()値が存在する場合は値を返し、存在しない場合はNoSuchElementExceptionをスローします。- APIのノート:
- このメソッドの代替として優先される方法は、orElseThrow()です。
- 戻り値:
- このOptionalによって記述される非null値
- 例外:
- NoSuchElementException- 値が存在しない場合
 
- 
isPresentpublic boolean isPresent()値が存在する場合、true、それ以外の場合はfalseを返します。- 戻り値:
- 値が存在する場合はtrue、存在しない場合はfalse
 
- 
isEmptypublic boolean isEmpty()値が存在しない場合はtrue、それ以外の場合falseを返します。- 戻り値:
- 値が存在しない場合はtrue、それ以外の場合はfalse
- 導入されたバージョン:
- 11
 
- 
ifPresent値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は何も実行しません。- パラメータ:
- action- 値が存在する場合、実行するアクション
- 例外:
- NullPointerException- 値が存在し、与えられたアクションが- nullの場合
 
- 
ifPresentOrElse値が存在する場合は、指定されたアクションを値とともに実行し、それ以外の場合は、指定された空ベースのアクションを実行します。- パラメータ:
- action- 値が存在する場合、実行するアクション
- emptyAction- 値が存在しない場合、実行される空ベースのアクション
- 例外:
- NullPointerException- 値が存在し、指定されたアクションが- nullの場合、または値が存在しない場合、指定された空のアクションは- nullです。
- 導入されたバージョン:
- 9
 
- 
filter値が存在し、その値が指定された述語と一致する場合は、値を記述するOptionalを戻し、それ以外の場合は空のOptionalを戻します。- パラメータ:
- predicate- 値に適用される述語(存在する場合)
- 戻り値:
- このOptionalの値を記述するOptional(値が存在し、値が指定された述語と一致する場合)、それ以外の場合は空のOptional
- 例外:
- NullPointerException- 述語が- nullの場合
 
- 
map値が存在する場合は、指定されたマッピング関数を値に適用した結果として(ofNullable(T)のように)を記述するOptionalを返し、それ以外の場合は空のOptionalを返します。マッピング関数が nullの結果を返した場合、このメソッドは空のOptionalを返します。- APIのノート:
- このメソッドは、Optional値に対する後処理をサポートします。戻りステータスを明示的にチェックする必要はありません。 たとえば、次のコードはURIのストリームをトラバースし、まだ処理されていないものを選択して、そのURIからパスを作成し、Optional<Path>を返します:
 ここで、Optional<Path> p = uris.stream().filter(uri -> !isProcessedYet(uri)) .findFirst() .map(Paths::get);findFirstはOptional<URI>を返し、mapは目的のURIが存在する場合はそのURIのOptional<Path>を返します。
- 型パラメータ:
- U- マッピング関数から返される値の型
- パラメータ:
- mapper- 値に適用するマッピング関数(存在する場合)
- 戻り値:
- 値が存在する場合はマッピング関数をこのOptionalの値に適用した結果を記述するOptional、それ以外の場合は空のOptional
- 例外:
- NullPointerException- マッピング関数が- nullの場合
 
- 
flatMap値が存在する場合は、指定されたOptional-bearingマッピング関数を値に適用した結果を返し、それ以外の場合は空のOptionalを返します。このメソッドは map(Function)と似ていますが、マッピング関数は、結果がすでにOptionalである関数であり、呼び出された場合、flatMapはそれを追加のOptional内でラップしません。- 型パラメータ:
- U- マッピング関数によって返された- Optionalの値の型
- パラメータ:
- mapper- 値に適用するマッピング関数(存在する場合)
- 戻り値:
- 値が存在する場合はOptional生成マッピング関数をこのOptionalの値に適用した結果、それ以外の場合は空のOptional
- 例外:
- NullPointerException- マッピング関数が- nullの場合、または- nullの結果を返す場合
 
- 
or値が存在する場合は、値を記述するOptionalを戻し、それ以外の場合は、指定関数によって生成されたOptionalを戻します。- パラメータ:
- supplier- 戻される- Optionalを生成する供給関数
- 戻り値:
- このOptionalの値を記述するOptionalを返します(値が存在する場合)。それ以外の場合は、指定関数によって生成されるOptionalを返します。
- 例外:
- NullPointerException- 供給関数が- nullまたは- null結果を生成する場合
- 導入されたバージョン:
- 9
 
- 
stream
- 
orElse
- 
orElseGet値が存在する場合は値を返し、それ以外の場合は供給関数によって生成された結果を返します。- パラメータ:
- supplier- 戻される値を生成する供給関数
- 戻り値:
- 値が存在する場合は、それ以外の場合は、供給機能によって生成される結果
- 例外:
- NullPointerException- 値が存在せず、供給関数が- nullの場合
 
- 
orElseThrowpublic T orElseThrow()値が存在する場合は値を返し、存在しない場合はNoSuchElementExceptionをスローします。- 戻り値:
- このOptionalによって記述される非null値
- 例外:
- NoSuchElementException- 値が存在しない場合
- 導入されたバージョン:
- 10
 
- 
orElseThrow値が存在する場合は値を返し、それ以外の場合は例外指定関数によって生成された例外をスローします。- APIのノート:
- 引数リストが空である例外コンストラクタへのメソッド参照をサプライヤとして使用できます。 たとえば、IllegalStateException::newなどです。
- 型パラメータ:
- X- スローされる例外の型
- パラメータ:
- exceptionSupplier- スローされる例外を生成する供給関数
- 戻り値:
- 値がある場合
- 例外:
- X- 値が存在しない場合
- NullPointerException- 値が存在せず、例外を提供する関数が- nullの場合
 
- 
equals
- 
hashCode
- 
toString
 
-