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]]