java.util.function之Predicate

半兽人 发表于: 2018-05-28   最后更新时间: 2018-05-28 16:23:12  
{{totalSubscript}} 订阅, 3,520 游览

Predicate类包含5个方法,最重要的是test方法,这是一个抽象方法,需要编程者自己去Override,其他的三个default方法里都使用到了这个方法,这三个方法分别是and方法,negate方法和or方法,其中and和or方法与前面两个类的andThen方法类似,这两个方法都接受另一个Predicate对象作为参数,and方法返回这两个对象分别调用test方法之后得到的布尔值的并,相当于predicate1.test() && predicate2.test(),or方法返回这两个对象分别调用test方法之后得到的布尔值的或,相当于predicate1.test() || predicate2.test()。

示例代码:

        Predicate<Integer> predicate1 = new Predicate<Integer>() {
            @Override
            public boolean test(Integer integer) {
                return integer <= 0;
            }
        };
        Predicate<Integer> predicate2 = new Predicate<Integer>() {
            @Override
            public boolean test(Integer integer) {
                return integer > 0;
            }
        };
        System.out.println("and: " + predicate1.and(predicate2).test(1));
        System.out.println("or: " + predicate1.or(predicate2).test(1));
        System.out.println("negate: " + predicate1.negate().test(1));

输出结果:

and: false
or: true
negate: true

同样,可以简化成lambda表达式

Predicate<Integer> predicate1 = integer -> integer <= 0;
Predicate<Integer> predicate2 = integer -> integer > 0;
更新于 2018-05-28

查看java更多相关的文章或提一个关于java的问题,也可以与我们一起分享文章