接口Predicate

概述

  predicate的中文意思有【表明,断言】,是对一个事务的判断,而我们说的这个Predicate是java8中的新特性接口。它主要是用于lambda表达式,用于判断,返回布尔类型的数据。我们这里主要是来说说它的各个方法的使用。

接口详情

1. test

  这个方法是这个接口中唯一的抽象方法,函数式接口两种有且只有一个抽象方法(其它方法为有方法体的默认方法和静态方法)。

    /**
     * 根据输入的参数预估这个断言
     *
     * @param t 输入参数
     * @return 如果这个参数匹配断言返回true,否则返回false
     */
    boolean test(T t);

  这个方法是需要进行实现的方法,也就是我们使用lambda表达式时候实现的就是这个方法,通过自定义方法体算法来对这个输入的参数进行一个判断。

2. and

  这个方法是该接口的默认方法,在java8中使用关键字default可以在接口中定义有方法体的方法。该方法表示的是两个断言逻辑与的组合断言。

    /**
     * 这个返回的是断言组合,返回的这个断言组合是一个断言和另外一个断言的逻辑与。
     * 在进行断言组合的计算时,如果当前断言的返回值是false,那么参数断言也就不用
     * 计算了。
     *
     * 组合断言中的任何一个断言发生异常,该异常都将转发给调用者。
     * 如果发生异常的断言是当前断言,那么参数断言也就不会计算了。
     * 
     *
     * @param other 参数断言,作为逻辑与断言和当前断言进行计算。
     * @return 返回一个组合断言,该断言是当前断言和参数断言的逻辑与。
     * @throws 如果组合断言是null将会抛出空指针异常。
     */
    default Predicate<T> and(Predicate<? super T> other) {
        Objects.requireNonNull(other);
        return (t) -> test(t) && other.test(t);
    }
3. or

  该方法表示的是两个断言逻辑或的组合断言。

    /**
     * 这个返回的是断言组合,返回的这个断言组合是一个断言和另外一个断言的逻辑或。
     * 在进行断言组合的计算时,如果当前断言的返回值是true,那么参数断言也就不用
     * 计算了。
     *
     * 组合断言中的任何一个断言发生异常,该异常都将转发给调用者。
     * 如果发生异常的断言是当前断言,那么参数断言也就不会计算了。
     *
     * @param other 参数断言,作为逻辑或断言和当前断言进行计算。
     * @return 返回一个组合断言,该断言是当前断言和参数断言的逻辑或。
     * @throws 如果组合断言是null将会抛出空指针异常。
     */
    default Predicate<T> or(Predicate<? super T> other) {
        Objects.requireNonNull(other);
        return (t) -> test(t) || other.test(t);
    }
4. negate

  该方法返回的是test方法的逻辑否。

    /**
     * 返回当前断言的逻辑否的断言对象。
     *
     * @return 当前断言的逻辑否断言对象。
     */
    default Predicate<T> negate() {
        return (t) -> !test(t);
    }
5. isEqual

  该方式接口中的静态方法,可以使用接口名加方法进行调用,返回断言对象,test是比较两个参数对象是否相等的。

    /**
     * 判断两个对象是否相等的断言对象。静态方法。
     *
     * @param 要及进行比较的对象参数
     * @return 两个参数进行一致性比较的断言对象。
     */
    static <T> Predicate<T> isEqual(Object targetRef) {
        return (null == targetRef)
                ? Objects::isNull
                : object -> targetRef.equals(object);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值