自定义函数式接口
@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)
|
|