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

© heifachangcun 中级黑马   /  2018-12-2 15:24  /  703 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自定义函数式接口
@FunctionalInterface 注解
Lambda表达式:
Lambda表达式的"延迟执行"的特点
函数式接口作为方法的"参数"和"返回值类型"
常用函数式接口
Supplier: 生产型函数式接口     获取值
Consumer: 消费型函数式接口     使用值
Predicate: 条件判断型函数式接口   判断值
Function: 转换型函数式接口     转换值
Lambda具有"延迟执行"的特点:
传递Lambda对象, 只有当符合执行条件时, 才会执行代码
当一个方法的参数是一个函数式接口时, 可以使用Lambda表达式传递该参数, 简化匿名内部类的代码

使用Lambda表达式作为方法返回值
当一个方法的返回值是一个函数式接口时, 可以返回Lambda表达式, 简化匿名内部类的代码
总结:
    使用@FunctionalInterface注解

@FunctionalInterface注解 检测是否是函数式接口
Lambda延迟执行的特点

当需要去调用抽象方法时, 才执行传入的Lambda表达式
使用Lambda作为方法的参数

方法参数是函数式接口类型时, 才能使用Lambda作为参数
使用Supplier<T>函数式接口

生产型
获取值

T get()
使用Consumer<T>函数式接口

消费型
使用值

void accept(T t): 消费指定的参数.
Consumer andThen(Consumer c)
使用Predicate<T>函数式接口

判断型
判断值

boolean test(T t): 判断参数值, 返回判断结果

Predicate and(Predicate p)
Predicate or(Predicate p)
Predicate negate()
使用Function<T, R>函数式接口
转换型
转换值

R apply(T t): 将T转换为R

Function andThen(Function f)



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