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]