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