其他分享
首页 > 其他分享> > 常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and

常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and

作者:互联网

package com.yang.Test.PredicateStudy;

import java.util.function.Predicate;

/**
 * java.util.function.Predicate<T>接口
 * 作用:对某种数据类型的数据进行判断,结果返回一个boolean值
 *
 * Predicate接口中包含一个抽象方法:
 * boolean test(T t):用来对指定数据类型数据进行判断的方法
 * 结果:
 * 符合条件,返回true
 * 不符合条件,返回false
 */
public class PredicateStudy01 {
    /**
     * 定义一个方法
     * 参数传递一个String类型的字符串
     * 传递一个Predicate接口,泛型使用String
     * 使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
     */
    public static boolean checkString(String s, Predicate<String> predicate) {
        boolean test = predicate.test(s);
        return test;
    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcdef";

        //调用checkString方法对字符串进行校验,参数传递字符串和Lambda表达式
        boolean b = checkString(s, str -> {
            //对参数传递字符串进行判断,判断字符串的长度是否大于5,,并把判断的结果返回
            return str.length() > 5;
        });
        System.out.println(b);
    }
}

常用的函数式借楼_Predicate_默认方法and

package com.yang.Test.PredicateStudy;

import java.util.function.Predicate;

/**
 * 逻辑表达式:可以连接多个判断的条件
 * &&:与运算符,有false则false
 * ||:或运算符,有true则true
 * !:非(取反)运算符,非真则假,非假则真
 *
 * 需求:判断一个字符串,有两个判断条件
 * 1.判断字符串的长度是否大于5
 * 2.判断字符串中是否包含a
 * 两个条件必须同时满足,我们就可以使用&&运算符链接两个条件
 *
 * Predicate接口中有一个方法and,表示并且关系,也可以用于连续两个判断条件
 * default Predicate<T> and(Predicate<? super T> other){
 *     Objects.requireNonNull(other);
 *     return (t) -> this.test(t) && other.test(t);
 * }
 * 方法内部两个判断条件,也是使用&&连接起来的
 */
public class PredicateAndStudy {
    /**
     * 定义一个方法,方法的参数,传递一个字符串
     * 传递两个Predicate接口
     * 一个用于判断字符串的长度是否大于5
     * 一个用于判断字符串中是否包含a
     * 两个条件必须同时满足
     */
    public static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2) {
        //return pre1.test(s) && pre2.test(s);
        return pre1.and(pre2).test(s);
    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcdef";
        //调用checkString方法,参数列表传递字符串和两个Predicate接口
        boolean b = checkString(s, message -> {
            return message.length() > 5;
        }, message -> {
            return message.contains("a");
        });
        System.out.println(b);

    }
}

标签:Predicate,判断,return,函数,接口,test,字符串,String
来源: https://www.cnblogs.com/ailhy/p/16498209.html