谓词接口包括三个方法: 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实战》