接口Predicate

接口Predicate概述  predicate的中文意思有【表明,断言】,是对一个事务的判断,而我们说的这个Predicate是java8中的新特性接口。它主要是用于lambda表达式,用于判断,返回布尔类型的数据。我们这里主要是来说说它的各个方法的使用。接口详情1.test  这个方法是这个接口中唯一的抽象方法,函数式接口两种有且只有一个抽象方法(其它方法为有方法体的默认方法和静态方法)。/***根据输入的参数预估这个断言**@paramt输入参数*

大家好,欢迎来到IT知识分享网。接口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);
    }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15008.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信