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实战》

posted @ 2018-05-25 20:55  寻找风口的猪  阅读(528)  评论(0编辑  收藏  举报