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