Java 8にfilterメソッドでOptionalの値をフィルタする

環境
Windows10 64bit
Eclipse 2019
Java8

関数
public Optional<T> filter(Predicate<? super T> predicate)
値が存在し、それが指定された述語に一致する場合はその値を記述するOptionalを返し、そうでない場合は空のOptionalを返します。
パラメータ:
predicate – 存在する場合は値に適用する述語
戻り値:
値が存在して値が指定された述語にマッチする場合は、このOptionalの値を記述するOptional、それ以外の場合は空のOptional

使用例

package com.arkgame.testinfo;

import java.util.Optional;

public class OptionMapDemo {

      private static final String TT = "studyskill";

      public static void main(String[] args) {
            //Optionの値を取得
            Optional<String> res = getInfo();
    	res
    	.filter(k -> k.length() > 8) //文字列の長さが8文字より大きい
    	.ifPresent(k->{System.out.println("結果1: "+k);});
    	System.out.println("結果2: "+res);

      }

//getInfo関数の定義
      static Optional<String> getInfo() {
            String str =TT;
            return Optional.ofNullable(str);
      }
}

実行結果
結果1: studyskill
結果2: Optional[studyskill]

Java

Posted by arkgame