- 函数式接口
1.1 概述
如果说一个接口内有且只有一个方法,而且该方法是一个 缺省属性为public abstract方法,该接口可以称之为是一个 函数式接口。
自定义函数式接口,还有系统中提供的函数式接口
Comparator Runnable
可以直接理解JDK1.8的新特征,Lambda表达式来使用。
Lambda表达式对比匿名内部类使用
1. 简化了代码结构
2. 节约了内存资源
3. 让程序员更加关注,我要做什么,而不是为了做 什么需要完成什么
1.2 @FunctionalInterface 使用
使用@FunctionalInterface检查函数式接口格式问题,要求当前接口中有且只有一个缺省属性为public abstract的方法
1.3 使用自定义的函数式接口作为方法的参数使用
代码中使用函数式接口- 让程序的目的性更强
- 提供复用,普适性的价值 3. 节约资源
- 函数式编程思想
2.1 Lambda延迟执行
2.1.1 日志记录
日志是否保存会存在等级限制
演示一个根据不同的等级来记录log日志
要求: 等级 == 1 记录log日志,其他情况不记录
2.1.2 使用函数式接口提供日志信息功能
这里需要一个函数式接口,返回值类型是String类型,其他 的无所谓。
2.2 Lambda作为方法参数和返回值
参数演示: Runnable接口
Java中提供的比较接口Comparator
利用一些返回值作为方法中操作的调节
public interface Comparator {
int compare(T o1, T o2);
} - Java中提供的常用函数式接口
3.1 JDK常用函数式接口概述
java.util.function包名 。提供了很多函数式接口
规范了一些操作,提升了开发效率,更加专注于目的 性!!!
Supplier 生产者, 返回一个指定类型的数据
Consumer 消费者, 消耗一个指定类型的数据
Predicate 判断调节,过滤使用
Function<T,R> 类型转换,根据你指定的类型T, 转换 成对应类型R
3.2 Supplier 生产者,返回一个指定的数据类型
java.util.function.Supplier
有且只有一个方法
T get();
不需要参数,返回指定T类型数据
什么都不吃,挤的都是输出。。。
3.3 Consumer消费者,处理数据
Consumer
操作使用的方式是
void accept(T t);
根据接口指定的数据类型接收对应数据,进行处理 和消费,对外没有任何的返回
至于处理的过程,展示,处理,计算。。。
andThen
3.4 Predicate 判断数据是否合适,返回true/false
Predicate一般用于调节判断,过滤数据的方法
函数式接口中指定的方法 boolean test(T t);
处理T类型数据,返回boolean true / false
3.5 Function<T,R> 类型转换
使用R apply(T t) 转换指定类型T到R
函数式接口
最新推荐文章于 2024-09-08 10:40:56 发布