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
}