其他分享
首页 > 其他分享> > 常用函数式接口Predicate与或非的练习

常用函数式接口Predicate与或非的练习

作者:互联网

 

package LambdaTest.LambdaTest05;

import java.util.function.Predicate;

/**
 * FileName: PredicateTest02
 * Author:   lps
 * Date:     2022/4/8 13:07
 * Sign:刘品水 Q:1944900433
 */
public class PredicateTest02 {
    public static void main(String[] args) {
        boolean b1 = checkString("lps", (s -> {
            return s.length() > 5;
        }));
        System.out.println(b1);
        boolean b2 = checkString("HelloWorld", s -> s.length() > 5);
        System.out.println(b2);
        System.out.println("==========");
        boolean b3 = checkString("lpsjava", s -> s.length() > 4, s -> s.length() < 7);
        System.out.println(b3);

        boolean b4=checkStringOR("lpsjava",s -> s.length()>4,s -> s.length()<7);
        System.out.println(b4);
    }

    private static boolean checkStringOR(String s, Predicate<String> pre1, Predicate<String> pre2) {
        //default Predicate<T> or(Predicate<? super T> other)
        //返回一个由谓词表示短路逻辑或该谓词和另一个。
//        boolean b1 = pre1.test(s);
//        boolean b2 = pre2.test(s);
//        boolean b = b1 || b2;
//        return b;
        return pre1.or(pre2).test(s);
        //default Predicate<T> or(Predicate<? super T> other) {
        //        Objects.requireNonNull(other);
        //        return (t) -> test(t) || other.test(t);
        //    }
    }

    //同一个字符串给出两个不同的判断条件 最后把这个
    private static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2) {
        //default Predicate<T> or(Predicate<? super T> other)
        //返回一个由谓词表示短路逻辑或该谓词和另一个。
//        boolean b1 = pre1.test(s);
//        boolean b2 = pre2.test(s);
//        boolean b = b1 && b2;
//        return b;
        return pre1.and(pre2).test(s);
        // default Predicate<T> and(Predicate<? super T> other) {
        //        Objects.requireNonNull(other);
        //        return (t) -> test(t) && other.test(t);
        //    }
    }

    private static boolean checkString(String s, Predicate<String> pre) {
        return pre.test(s);
    }
}

 

 

 

标签:Predicate,return,boolean,接口,other,b2,test,或非
来源: https://www.cnblogs.com/lps1944900433/p/16123038.html