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;
}
}
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心永久会员
打赏 收藏 海报 链接