Predicate 是一个接收一个参数并返回一个 boolean 类型值的函数式接口。它用于判断输入的参数对象是否符合某个特定的规则。

1
2
3
4
5
public static void main(String[] args) {
Predicate<Integer> predicate = (n) -> n % 2 == 0;
boolean result = predicate.test(8);
System.out.println(result); // true
}

除此之外,你还可以组合 Predicate 中提供的默认方法 or(或)、and(与)、negate(非)进行更加复杂的逻辑判断。

1
2
3
4
5
public static void main(String[] args) {
Predicate<Integer> predicate = (n) -> n % 2 == 0;
boolean result = predicate.negate().test(8);
System.out.println(result); // false
}

or 逻辑时,先执行 predicate1 判断再执行 predicate2 判断。

1
2
3
4
5
6
public static void main(String[] args) {
Predicate<Integer> predicate1 = (n) -> n > 0;
Predicate<Integer> predicate2 = (n) -> n < 5;
boolean result = predicate1.or(predicate2).test(8);
System.out.println(result); // true
}

and 逻辑时,先执行 predicate1 判断再执行 predicate2 判断。

1
2
3
4
5
6
public static void main(String[] args) {
Predicate<Integer> predicate1 = (n) -> n > 0;
Predicate<Integer> predicate2 = (n) -> n < 5;
boolean result = predicate1.and(predicate2).test(8);
System.out.println(result); // false
}