Java Optional filter()方法及实例

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.empty
Filtered value for odd or even: Optional.empty

参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#filter-java.util.function.Predicate-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程