侧边栏壁纸
博主头像
小白博主等级

just do it!

  • 累计撰写 60 篇文章
  • 累计创建 77 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Java函数式接口的使用

小白
2022-04-29 / 0 评论 / 1 点赞 / 304 阅读 / 249 字

使用背景

Java8新增了函数式接口,了可以想JavaScript那样使用箭头表达式(Lamda)来作为方法的参数、返回值或者对象的属性。

java.util.function包下预定义了一些的函数式接口供我们使用:

  • Function
  • Consumer
  • Supplier
  • Predicate

项目使用

定义工具类判断条件condition是否为成立,成立则执行传入的方法fun。

public static <T> T casReturn(boolean condition, Function<T, T> fun, T obj){
    if(condition){
        return fun.apply(obj);
    }else {
        return obj;
    }
}
public static <T> T casVoid(boolean condition, Consumer<T> fun, T obj){
    if(condition){
        fun.accept(obj);
        return obj;
    }else {
        return obj;
    }
}

使用场景

业务中对象属性的修改经常会判断参数是否传值,传值则设置值,不穿则不做操作,举个栗子:更新用户信息,对应姓名,昵称,传值不为空时则更新用户对应信息

CommonUtils.casVoid(Objects.nonNull(userName), user -> user.setUserName(userName), user);
1

评论区