Java Optional filter()方法及实例

来源:这里教程网 时间:2026-02-17 21:02:07 作者:

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-

相关推荐