Java基础,Predicate的用法

/**
 * @author Lee
 * @version 1.0
 * @description
 * @date 2022/8/19 13:26
 */
@Slf4j
public class PredicateTest {

    @Test
    public void predicateEqualsTest(){
        //5、equal 相等操作
        User u = new User(1,"lee",20);
        Predicate<User> predicate = Predicate.isEqual(u);

        log.info("----->{}",predicate.test(new User(1,"ren",20)));//false
        log.info("----->{}",predicate.test(new User(1,"lee",20)));//true
        log.info("----->{}",predicate.test(new User(2,"lee",20)));//false
    }

    @Test
    public void predicateOrTest() {
        //4、or或操作
        Predicate<String> predicate = x -> x.equals("A");
        predicate = predicate.or(x->x.equals("B"));

        log.info("---->{}",predicate.test("A"));//true
        log.info("---->{}",predicate.test("B"));//true
        log.info("---->{}",predicate.test("C"));//false
        log.info("---->{}",predicate.test("D"));//false
    }

    @Test
    public void predicateNagateTest() {
        //3、非操作
        Predicate<Integer> predicate = x -> x > 7;
        predicate = predicate.and(x -> x % 2 == 0);
        predicate = predicate.negate();//将之前的判断 做非操作
        log.info("---->{}", predicate.test(6));//true
        log.info("---->{}", predicate.test(8));//false
        log.info("---->{}", predicate.test(9));//true
        log.info("---->{}", predicate.test(10));//false
    }

    @Test
    public void predicateAndTest() {
        //2、判断数字是否大于7且是偶数
        Predicate<Integer> predicate = x -> x > 7;
        predicate = predicate.and(x -> x % 2 == 0);

        log.info("--->{}", predicate.test(6));//false
        log.info("--->{}", predicate.test(8));//true
        log.info("--->{}", predicate.test(9));//fasle
        log.info("--->{}", predicate.test(10));//true
    }

    @Test
    public void predicateTest() {
        //1、判断数字是否大于7
        Predicate<Integer> predicate = x -> x > 7;
        log.info("---->{}", predicate.test(6));//false
        log.info("---->{}", predicate.test(7));//false
        log.info("---->{}", predicate.test(8));//true
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值