断言型接口,有参有返回值,返回值是boolean类型
@FunctionalInterfacepublic interface Predicate<T> {/*** 具体过滤操作 需要被子类实现.* 用来处理参数T是否满足要求,可以理解为 条件A*/boolean test(T t);/*** 调用当前Predicate的test方法之后再去调用other的test方法,相当于进行两次判断* 可理解为 条件A && 条件B*/default Predicate<T> and(Predicate<? super T> other) {Objects.requireNonNull(other);return (t) -> test(t) && other.test(t);}/*** 对当前判断进行"!"操作,即取非操作,可理解为 ! 条件A*/default Predicate<T> negate() {return (t) -> !test(t);}/*** 对当前判断进行"||"操作,即取或操作,可以理解为 条件A ||条件B*/default Predicate<T> or(Predicate<? super T> other) {Objects.requireNonNull(other);return (t) -> test(t) || other.test(t);}/*** 对当前操作进行"="操作,即取等操作,可以理解为 A == B*/static <T> Predicate<T> isEqual(Object targetRef) {return (null == targetRef)? Objects::isNull: object -> targetRef.equals(object);}
