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

2022年1月13日

環境
Windows10 64bit
Eclipse 2019
Java8

書式
flatMap(Function<? super T,Optional<U>> mapper)
値が存在する場合は、指定されたOptional生成マッピング関数をその値に適用し、その結果を返します。そうでない場合は空のOptionalを返します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
}
}
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); } }
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);
      }
}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
flatMapメソッドで実行結果:
Optional[study skill]
mapメソッドで実行結果:
Optional[Optional[study skill]]
flatMapメソッドで実行結果: Optional[study skill] mapメソッドで実行結果: Optional[Optional[study skill]]
flatMapメソッドで実行結果:
 Optional[study skill]
mapメソッドで実行結果:
 Optional[Optional[study skill]]

 

Java

Posted by arkgame