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である必要があるOptional
NullPointerException
- valueがnullの場合。public static <T> Optional<T> ofNullable(T value)
Optional
を返し、それ以外の場合は空のOptional
を返します。T
- 値のクラスvalue
- 記述する値(nullも可)Optional
、それ以外の場合は空のOptional
public T get()
Optional
に値が存在する場合は値を返し、それ以外の場合はNoSuchElementException
をスローします。Optional
が保持する非null値NoSuchElementException
- 存在する値がない場合isPresent()
public boolean isPresent()
true
を返し、それ以外の場合はfalse
を返します。true
、それ以外の場合はfalse
public void ifPresent(Consumer<? super T> consumer)
consumer
- 値が存在する場合に実行されるブロックNullPointerException
- 値が存在しconsumer
がnullの場合public Optional<T> filter(Predicate<? super T> predicate)
Optional
を返し、そうでない場合は空のOptional
を返します。predicate
- 存在する場合は値に適用する述語Optional
の値を記述するOptional
、それ以外の場合は空のOptional
NullPointerException
- 述語が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
、それ以外の場合は空のOptional
NullPointerException
- マッピング関数がnullの場合public <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)
Optional
生成マッピング関数をその値に適用し、その結果を返します。そうでない場合は空のOptional
を返します。このメソッドはmap(Function)
に似ていますが、指定されるマッパーは結果がすでにOptional
であるマッパーで、flatMap
は呼び出されても追加のOptional
でラップしません。U
- 返されるOptional
への型パラメータmapper
- 値(存在する場合)に適用するマッピング関数Optional
生成マッピング関数をこのOptional
の値に適用した結果、それ以外の場合は空のOptional
NullPointerException
- マッピング関数がnull、またはnull結果を返す場合public T orElse(T other)
other
を返します。other
- 存在する値がない場合に返される値、nullも可other
public 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 extends Throwable
IllegalStateException::new
などです。X
- スローされる例外の型exceptionSupplier
- スローされる例外を返すサプライヤX
- 存在する値がない場合NullPointerException
- 値が存在せずexceptionSupplier
がnullの場合X extends Throwable
public boolean equals(Object obj)
Optional
である、および
equals()
によってお互いに等しい。
equals
、クラス: Object
obj
- 等価性を判定されるオブジェクトfalse
Object.hashCode()
, HashMap
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.