Java8にOptionalでmapメソッドとflatMapメソッドのサンプル
環境
Windows10 64bit
Eclipse 2019
Java8
書式
flatMap(Function<? super T,Optional<U>> mapper)
値が存在する場合は、指定されたOptional生成マッピング関数をその値に適用し、その結果を返します。そうでない場合は空のOptionalを返します。
使用例
package com.arkgame.testinfo;
import java.util.Optional;
public class OptionMapDemo {
private static final String TT = "study skill";
public static void main(String[] args) {
// flatMapメソッド getInfoメソッドを実行
Optional<String> ft = getInfo(TT).flatMap(k -> getInfo(k));
System.out.println("flatMapメソッドで実行結果:\n "+ft);
// mapメソッド getInfoメソッドを2回実行
Optional<Object> mp = getInfo(TT).map(t -> getInfo(t));
System.out.println("mapメソッドで実行結果:\n "+mp);
}
//getInfo関数の定義
static Optional<String> getInfo(String str) {
return Optional.ofNullable(str);
}
}
実行結果
flatMapメソッドで実行結果: Optional[study skill] mapメソッドで実行結果: Optional[Optional[study skill]]