A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

函数式接口

自定义函数式接口

@FunctionalInterface 注解


Lambda表达式:

Lambda表达式的"延迟执行"的特点

函数式接口作为方法的"参数"和"返回值类型"


常用函数式接口

Supplier: 生产型函数式接口 获取值

Consumer: 消费型函数式接口 使用值

Predicate: 条件判断型函数式接口 判断值

Function: 转换型函数式接口 转换值



Lambda具有"延迟执行"的特点

supplier 生产型函数式接口

java.util.function.Supplier函数式接口: 生产型函数式接口

// 抽象方法




T get(): 用于获取一个对象或值.
至于获取什么值, 怎么获取, 需要我们根据应用场景编写Lambda来实现
consumer消费性函数式接口

java.lang.StringBuilder类: 可变字符序列, 类似于String, 线程不安全效率高

StringBuilder reverse(): 将StringBuilder内部保存的内容反转

String toString(): 转换为String

java.lang.StringBuffer类: 可变字符序列, 类似于String, 线程安全效率低

StringBuffer reverse(): 将StringBuffer内部保存的内容反转

String toString(): 转换为String




java.util.function.Consumer函数式接口: 消费型函数式接口

// 抽象方法

void accept(T t): 用于消费(使用)一个对象或值. 至于怎么消费, 要我们根据应用场景编写Lambda实现

// 默认方法

default Consumer andThen(Consumer after): 拼接两个Consumer接口的Lambda对 象实现连续操作. 谁写前面, 谁先消费

// 默认方法

default Consumer andThen(Consumer after): 拼接两个Consumer接口的Lambda对 象实现连续操作. 谁写前面, 谁先消费

predicate条件判断函数式接口

java.util.function.Predicate函数式接口: 条件接口, 用于判断

//抽象方法

boolean test(T t): 判断参数传递的对象. 至于怎么判断, 判断什么, 需要我们编写Lambda表达式实现

//默认方法(用于连接多个判断条件)

default Predicate and(Predicate other): 与 &&

default Predicate or(Predicate other): 或 ||

default Predicate negate(): 非, 取相反结果

boolean b = 判断方式1.or(判断方式2).and(判断方式3).negate().test("abc")

Funcation转换型函数式接口

java.util.function.Function: 根据一个 T类型的数据 转换为 另一个R类型的数据

// 抽象方法

R apply(T t): 将T转换为R. 至于T和R是什么类型, 以及如何转换, 需要传递Lambda表达式实现

// 默认方法

default Function andThen(Function after): 拼接多个 Function转换







0 个回复

您需要登录后才可以回帖 登录 | 加入黑马