Java8新特性 - 03 - 函数式接口05 - Predicate详解

本文详细介绍了Java中的Predicate接口,包括其核心方法booleantest、与操作、或操作和取反操作,并通过示例代码展示了如何在实际应用中进行逻辑判断。同时,文章还演示了isEqual静态方法用于比较对象的一致性。
摘要由CSDN通过智能技术生成

1.Predicate 接口说明

核心方法 boolean test(T t) : 数据验证,返回布尔类型的值

 * 说明 :
 *    1.接口名称 : Predicate
 *    2.方法
 *      boolean test(T t) : 传入参数t,返回一个布尔值
 *      default Predicate<T> and(Predicate<? super T> other)  : 与操作
 *      default Predicate<T> or(Predicate<? super T> other) : 或操作
 *      default Predicate<T> negate() :取反操作
 *      static <T> Predicate<T> isEqual(Object targetRef) :静态方法,比较两个对象是否一致
 *
 *   3.应用场景 :
 *        当你需要对某些数据进行 逻辑判断是,可以直接使用这个接口

2.使用案例

2.1 案例代码

package com.northcastle.G_functionalInterface;

/**
 * author : northcastle
 * createTime:2022/2/19
 */


import java.util.function.Predicate;

public class PredicateTest {

    public static void main(String[] args) {
        //1.test方法
        boolean res = useTest(strParam -> strParam.length() > 5,"Hello Predicate");
        System.out.println("判断结果是 : "+res);
        System.out.println();
        //2.与操作 : 字符串长度>5 且 以Hello开头 且 以Predicate结尾
        boolean resAnd = useAnd(strParam -> strParam.length() > 5,
                strParam -> strParam.startsWith("Hello"),
                strParam -> strParam.endsWith("Predicate"),"Hello Predicate");
        System.out.println("and 判断结果是 : "+resAnd);
        System.out.println();
        //3.或操作 字符串长度>5 或 以Hello开头 或 以Predicate结尾
        boolean resOr = useOr(strParam -> strParam.length() > 5,
                strParam -> strParam.startsWith("Hello"),
                strParam -> strParam.endsWith("Predicate"),"Hello Java");
        System.out.println("or 判断结果是 : "+resOr);
        System.out.println();
        //4.取反操作
        boolean resNegate = useNegate(strParam -> strParam.length() > 500,"Hello Predicate");
        System.out.println("negate 判断结果是 : "+resNegate);
        System.out.println();
        //5.比较两个对象是否一致
        boolean isEqual = Predicate.isEqual(new String("大家好")).test(new String("大家好"));
        System.out.println("isEqual : "+isEqual);
    }

    //1.基本的test方法 : 判断参数字符串的长度是否大于5
    public static boolean useTest(Predicate<String> predicate,String str){
        boolean res = predicate.test(str);
        return res;
    }
    //2.与操作
    public static boolean useAnd(Predicate<String> p1,Predicate<String> p2,Predicate<String> p3,String str){
        boolean res = p1.and(p2).and(p3).test(str);
        return res;
    }
    //3.或操作
    public static boolean useOr(Predicate<String> p1,Predicate<String> p2,Predicate<String> p3,String str){
        boolean res = p1.or(p2).or(p3).test(str);
        return res;
    }
    //4.取反操作
    public static boolean useNegate(Predicate<String> predicate,String str){
        boolean res = predicate.negate().test(str);
        return res;
    }
   
}

2.2 运行结果

在这里插入图片描述

3.完成

Congratulations!
You are one step closer to success!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值