该接口位于 java.util.function;
Predicate接口主要用来判断一个参数是否符合要求。
函数式编程,支持 lambda 表达式。
接口源码:
// Predicate接口主要用来判断一个参数是否符合要求
// 函数式编程,支持 lambda 表达式
@FunctionalInterface
public interface Predicate<T> {
/**
* 具体过滤的操作,需要被子类实现
* 用来处理参数 T 是否满足要求
*/
boolean test(T t);
// 可以理解为 and , “&&”
default Predicate<T> and(Predicate<? super T> other) {
Objects.requireNonNull(other);
return (t) -> test(t) && other.test(t);
}
// 逻辑非 “!” 取反操作
default Predicate<T> negate() {
return (t) -> !test(t);
}
// 或者 等同于 “||”
default Predicate<T> or(Predicate<? super T> other) {
Objects.requireNonNull(other);
return (t) -> test(t) || other.test(t);
}