Lambda表达式的应用

2022-11-11 18:45:56 浏览数 (1)

Java8常用函数式接口

Function<T,R> 转换型:接受一个输入参数,返回一个结果

Consumer<T> 消费型:接受一个输入参数,无返回

Predicate<T> 判断型:接受一个输入参数,返回Boolean结果

Supplier<T> 供给型:无参数,返回结果

本文只介绍 Predicate、Predicate两种方法。其他方法真的没啥应用场景。等有了应用场景,我再来更新本文!

Predicate<T> 自定义条件判定 & DB操作返回值判断

利用Lambda断言表达式去做判定本身就很尴尬,本来利用if判定就行了,这里放一个脱裤子放屁的,还得传入判断规则,不如直接使用if的了。

注意:如果多个条件,Predicate对象自己封装了Predicate<T> and(Predicate<? super T> other)方法,使用a.and(b)方法后得到c,在用c.test(Obj)去判断。

代码语言:javascript复制
    public static void mapperService() {
        boolean res = operateDB(模拟操作_插入数据(), e -> e.getId() > 0);
        System.out.println(res);
    }

    public static UserInfo 模拟操作_插入数据() {
        return new UserInfo(1,"张三",1);
    }

    public static boolean operateDB(UserInfo res, Predicate<UserInfo> dbRes) {
        return dbRes.test(res); // 本意就是将对象放入自定义判断表达式判断
    }

Supplier<T> 应用 & DB操作返回值判断

注意:这里只封装了单独插入操作,可以考虑多传入几个值,一起判断了。比如传入修改账号信息的结果、修改账号信息记录结果一起判断。

代码语言:javascript复制
    // 调用业务执行判断
    public static void mapperService() {
        boolean res = operateDB(() -> 模拟操作_插入数据());
    }

    public static Integer 模拟操作_插入数据(){
        return 1;
    }

    public static boolean operateDB(Supplier<Integer> dbRes) {
        if (dbRes.get() != null && dbRes.get() > 0) {
            return true;
        } else {
            return false;
        }
    }

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

收心永久会员

打赏 收藏 海报 链接

0 人点赞