Java Optional filter()方法及实例
Java中 java.util .Optional类 的 filter() 方法用于通过与给定的Predicate匹配来过滤这个Optional实例的值,然后返回过滤后的Optional实例。如果这个Optional实例中没有任何值,那么这个方法就会返回一个空的Optional实例。
语法
public Optional<T> filter(Predicale<T> predicate)
参数: 该方法接受 Predicate 类型的参数,用该方法过滤一个Optional实例。
返回值: 该方法返回过滤后的Optional实例。如果这个Optional实例中没有任何值,那么这个方法返回一个空的Optional实例。
异常情况。如果指定的谓词为空,该方法会抛出 NullPointerException 。
以下程序说明了filter()方法:
程序1 :
// Java program to demonstrate// Optional.filter() method import java.util.*; public class GFG { public static void main(String[] args) { // create a Optional Optional<Integer> op = Optional.of(9456); // print value System.out.println("Optional: " + op); // filter the value System.out.println("Filtered value " + "for odd or even: " + op .filter(num -> num % 2 == 0)); }}
输出。
Optional: Optional[9456]Filtered value for odd or even: Optional[9456]
程序2
// Java program to demonstrate// Optional.filter() method import java.util.*; public class GFG { public static void main(String[] args) { // create a Optional Optional<Integer> op = Optional.empty(); // print value System.out.println("Optional: " + op); try { // filter the value System.out.println("Filtered value " + "for odd or even: " + op .filter(num -> num % 2 == 0)); } catch (Exception e) { System.out.println(e); } }}输出。
Optional: Optional.emptyFiltered value for odd or even: Optional.empty
参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#filter-java.util.function.Predicate-
