Java8にOptionalでmapメソッドとflatMapメソッドのサンプル

2022年1月13日

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

 

Java

Posted by arkgame