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-