函数式编程-predicate

@FunctionalInterface

public interface Predicate {

      boolean test(T t);

还有默认方法and、or、negate等。

predicate函数签名是一个入参,返回一个boolean值

相信很多小伙伴遇到过这样的场景,一个if语句中有很长的判断逻辑,代码冗余,可读性差!可以使用predicate函数接口结合接口内默认方法使用。

Predicate a = String::isEmpty;

Predicate b = Objects::isNull;

Predicate c = b.and(a);

c就是一个组合判断语句;当然String.isEmpty里面已经有Object是否为null的判断了,这里只是做一个演示!

if条件语句可以优化成这样

if(c.test(“hello world”)

相信很多小伙伴也比较熟悉stream流了

Stream流中的filter入参正是Predicate

昨天所讲的Function接口是Stream流中map的入参

作者能力有限,恳请各位大佬批评指正!函数式编程-predicate_第1张图片

 

你可能感兴趣的:(java,代码规范)