Predicate类包含5个方法,最重要的是test方法,这是一个抽象方法,需要编程者自己去Override,其他的三个default方法里都使用到了这个方法,这三个方法分别是and方法,negate方法和or方法,其中and和or方法与前面两个类的andThen方法类似,这两个方法都接受另一个Predicate对象作为参数,and方法返回这两个对象分别调用test方法之后得到的布尔值的并,相当于predicate1.test() && predicate2.test(),or方法返回这两个对象分别调用test方法之后得到的布尔值的或,相当于predicate1.test() || predicate2.test()。negate方法是取反predicate1.negate()。
test例:
public static void main(String[] args) {
Predicate<Integer> predicate = s->s==1;
System.err.println(predicate.test(1));
}
执行结果:
true
and例:
//判断一个整数大于5并且是偶数(两个条件同时满足)
public static void main(String[] args) {
Predicate<Integer> predicate = s-> s>=5;
Predicate<Integer> predicate1 = s -> s%2==0;
System.out.println(predicate1.and(predicate).test(7));
System.out.println(predicate.and(predicate1).test(8));
}
执行结果:
false
true
or例:
//判断一个整数大于等于5或是偶数(满足一个条件即可)
public static void main(String[] args) {
Predicate<Integer> predicate = s->s>=5;
Predicate<Integer> predicate1 = s -> s%2==0;
System.out.println(predicate1.or(predicate).test(4));
System.out.println(predicate.and(predicate1).test(8));
}
执行结果:
true
true
negate例:
//判断一个整数是否大于等于5(取反)
public static void main(String[] args) {
Predicate<Integer> predicate = s->s>=5;
System.out.println(predicate.negate().test(6));
}
执行结果:
false
网友评论