JavaSE-java8-谓词复合的用法

谓词接口包括三个方法: negate、 and 和 or让你可以重用已有的Predicate来创建更复杂的谓词

一、比如可以用negate方法来返回一个Predicate非

public class ColorPredicate implements Predicate<Apple> {
    @Override
    public boolean test(Apple apple) {
        return false;
    }
}
ColorPredicate greenOrange = new ColorPredicate();
// 产生现有Predicate对象greenOrange的非
Predicate<Orange> negateColor = greenOrange.negate();

二、还可以把两个Lambda用 and 或者 or连接起来

//连接两个谓词来生成另一个Predicate
Predicate<Orange> and = greenOrange.and(orange -> orange.getWeight() > 150);
//链接Predicate的
//方法来构造更复杂Predicate对象
Predicate<Orange> andOr =
        greenOrange.and(orange -> orange.getWeight() > 150).or(orange -> "green".equals(orange.getColor()));

 

参考:

https://gitee.com/play-happy/base-project

【1】《Java8实战》

原文地址:https://www.cnblogs.com/happyflyingpig/p/9090645.html