Predicate<T>、BiPredicate<T, U> 和 IntPredicate 是 Java 8 中的函数式接口,用于表示不同数量参数的断言,并且它们之间存在一些区别。


1. Predicate<T>:接受一个参数并返回一个 boolean 值的断言。它定义了一个名为 test(T t) 的抽象方法,用于对给定的参数进行判断操作并返回判断结果。

  • 示例:
Predicate<Integer> isEven = num -> num % 2 == 0;
System.out.println(isEven.test(5));  // 输出: false

这个接口适用于对类型为 T 的参数进行条件判断的场景。

2. BiPredicate<T, U>:接受两个参数并返回一个 boolean 值的断言。它定义了一个名为 test(T t, U u) 的抽象方法,用于对给定的两个参数进行判断操作并返回判断结果。

  • 示例:
BiPredicate<Integer, Integer> isGreaterThan = (num1, num2) -> num1 > num2;
System.out.println(isGreaterThan.test(5, 3));  // 输出: true

这个接口适用于对两个输入进行条件判断的场景。

3. IntPredicate:接受一个 int 类型的参数并返回一个 boolean 值的断言。它定义了一个名为 test(int value) 的抽象方法,用于对给定的 int 类型参数进行判断操作并返回判断结果。

  • 示例:
IntPredicate isPositive = num -> num > 0;
System.out.println(isPositive.test(5));  // 输出: true

这个接口适用于对 int 类型的参数进行条件判断的场景。


总结来说,Predicate<T> 是用于接受单个参数并返回布尔值的断言,BiPredicate<T, U> 是用于接受两个参数并返回布尔值的断言,而 IntPredicate 是用于接受 int 类型的参数并返回布尔值的断言。


今夜有点儿凉
40 声望3 粉丝

今夜有点儿凉,乌云遮住了月亮。