flatmap
Optionalオブジェクトが値を保持している場合に、その値を別のOptionalオブジェクトに変換するためのメソッドである。変換されたOptionalオブジェクトが返される。
flatMap()メソッドは、以下のようなシグネチャを持っている。
<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper)
mapとflatmapの比較
戻り値の比較
- map()メソッドはOptionaalであり変換操作によって得られた値を新しいOptionalオブジェクトとして戻す。
- flatmap()メソッドは値の変換操作によって得られたOptionalオブジェクトを自動的に解消しフラットなOptionalを戻す。
使い分け
map()メソッド:
- 単純な値の変換を行いたい場合
- 変換操作自体をスキップせずに実行したい場合
flatMap()メソッド
- 値の変換によってネストしたOptionalオブジェクトを解消したい場合