public final class Optional<T> extends Object
isPresent()はtrueを返し、get()は値を返します。
含まれる値の有無に応じて追加メソッドが提供されます。たとえば、orElse() (値が存在しない場合にデフォルト値を返す)、ifPresent() (値が存在する場合にコードのブロックを実行する)など。
これは値ベースのクラスで、Optionalのインスタンスに対して、ID依存操作(参照等価性(==)、IDハッシュ・コード、同期など)を使用すると、予期できない結果になる可能性があり、避けてください。
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
static <T> Optional<T> |
empty() |
空の
Optionalインスタンスを返します。 |
boolean |
equals(Object obj) |
一部の他のオブジェクトがこのOptionalと等しいかどうかを示します。
|
Optional<T> |
filter(Predicate<? super T> predicate) |
値が存在し、それが指定された述語に一致する場合はその値を記述する
Optionalを返し、そうでない場合は空のOptionalを返します。 |
<U> Optional<U> |
flatMap(Function<? super T,Optional<U>> mapper) |
値が存在する場合は、指定された
Optional生成マッピング関数をその値に適用し、その結果を返します。そうでない場合は空のOptionalを返します。 |
T |
get() |
この
Optionalに値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。 |
int |
hashCode() |
存在する値のハッシュ・コード値(ある場合)を返し、値が存在しない場合は0 (ゼロ)を返します。
|
void |
ifPresent(Consumer<? super T> consumer) |
値が存在する場合は指定されたコンシューマをその値で呼び出し、それ以外の場合は何も行いません。
|
boolean |
isPresent() |
存在する値がある場合は
trueを返し、それ以外の場合はfalseを返します。 |
<U> Optional<U> |
map(Function<? super T,? extends U> mapper) |
値が存在する場合は、指定されたマッピング関数をその値に適用し、結果がnullでなければ結果を記述する
Optionalを返します。 |
static <T> Optional<T> |
of(T value) |
指定された非null値を含む
Optionalを返します。 |
static <T> Optional<T> |
ofNullable(T value) |
指定された値がnullでない場合はその値を記述する
Optionalを返し、それ以外の場合は空のOptionalを返します。 |
T |
orElse(T other) |
存在する場合は値を返し、それ以外の場合は
otherを返します。 |
T |
orElseGet(Supplier<? extends T> other) |
値が存在する場合はその値を返し、そうでない場合は
otherを呼び出し、その呼び出しの結果を返します。 |
<X extends Throwable> |
orElseThrow(Supplier<? extends X> exceptionSupplier) |
値が存在する場合は、その含まれている値を返し、それ以外の場合は、指定されたサプライヤによって作成された例外をスローします。
|
String |
toString() |
デバッグに適しているこのOptionalの空ではない文字列表現を返します。
|
public static <T> Optional<T> empty()
Optionalインスタンスを返します。 このOptionalの値は存在しません。 Option.empty()で返されたインスタンスに対して==で比較することによってオブジェクトが空かどうかを判定しないでください(そうしたいかもしれませんが)。 シングルトンである保証はありません。 かわりにisPresent()を使用してください。 T - 存在しない値の型Optional。public static <T> Optional<T> of(T value)
Optionalを返します。T - 値のクラスvalue - 存在する値、非nullである必要があるOptionalNullPointerException - valueがnullの場合。public static <T> Optional<T> ofNullable(T value)
Optionalを返し、それ以外の場合は空のOptionalを返します。T - 値のクラスvalue - 記述する値(nullも可)Optional、それ以外の場合は空のOptionalpublic T get()
Optionalに値が存在する場合は値を返し、それ以外の場合はNoSuchElementExceptionをスローします。Optionalが保持する非null値NoSuchElementException - 存在する値がない場合isPresent()public boolean isPresent()
trueを返し、それ以外の場合はfalseを返します。true、それ以外の場合はfalsepublic void ifPresent(Consumer<? super T> consumer)
consumer - 値が存在する場合に実行されるブロックNullPointerException - 値が存在しconsumerがnullの場合public Optional<T> filter(Predicate<? super T> predicate)
Optionalを返し、そうでない場合は空のOptionalを返します。predicate - 存在する場合は値に適用する述語Optionalの値を記述するOptional、それ以外の場合は空のOptionalNullPointerException - 述語がnullの場合public <U> Optional<U> map(Function<? super T,? extends U> mapper)
Optionalを返します。 それ以外の場合は空のOptionalを返します。 Optional<FileInputStream>を返します。
Optional<FileInputStream> fis =
names.stream().filter(name -> !isProcessedYet(name))
.findFirst()
.map(name -> new FileInputStream(name));
ここで、findFirstはOptional<String>を返してから、mapは求めているファイル(存在する場合)のOptional<FileInputStream>を返します。U - マッピング関数の結果の型mapper - 値に適用するマッピング関数(存在する場合)Optionalの値に適用した結果を記述するOptional、それ以外の場合は空のOptionalNullPointerException - マッピング関数がnullの場合public <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)
Optional生成マッピング関数をその値に適用し、その結果を返します。そうでない場合は空のOptionalを返します。 このメソッドはmap(Function)に似ていますが、指定されるマッパーは結果がすでにOptionalであるマッパーで、flatMapは呼び出されても追加のOptionalでラップしません。 U - 返されるOptionalへの型パラメータmapper - 値(存在する場合)に適用するマッピング関数Optional生成マッピング関数をこのOptionalの値に適用した結果、それ以外の場合は空のOptionalNullPointerException - マッピング関数がnull、またはnull結果を返す場合public T orElse(T other)
otherを返します。other - 存在する値がない場合に返される値、nullも可otherpublic T orElseGet(Supplier<? extends T> other)
otherを呼び出し、その呼び出しの結果を返します。other - Supplier(値が存在しない場合は、これの結果が返される)other.get()の結果NullPointerException - 値が存在せずotherがnullの場合public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X
IllegalStateException::newなどです。 X - スローされる例外の型exceptionSupplier - スローされる例外を返すサプライヤX - 存在する値がない場合NullPointerException - 値が存在せずexceptionSupplierがnullの場合X extends Throwablepublic boolean equals(Object obj)
Optionalである、および
equals()によってお互いに等しい。
equals、クラスObjectobj - 等価性を判定されるオブジェクトfalseObject.hashCode()、HashMappublic int hashCode()
hashCode、クラスObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。