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

環境
Windows10 64bit
Eclipse 2019
Java8

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