黑马程序员技术交流社区

标题: 【石家庄校区】函数式接口笔记。Skr [打印本页]

作者: 陈叶_cy    时间: 2018-8-24 18:54
标题: 【石家庄校区】函数式接口笔记。Skr
本帖最后由 陈叶_cy 于 2018-8-24 20:05 编辑

函数式接口
1. 概念:有且仅有一个抽象方法的接口,适用于函数式编程场景的接口,代替匿名内部类方式        (默认方法,静态方法,私有方法,与java.lang.Object类中定义相同的抽象方法,都不算作抽象方法)
              @FunctionalInterface的作用
               在接口的上面使用,检测当前的接口是否为函数式接口

2、函数式编程
       使用Lambda延迟执行的特性优化日志
       使用Lambda表达式作为方法参数
       使用Lambda表达式作为方法返回值

3、常用函数式接口
       Supplier生产型函数式接口
              java.util.function.Supplier<T>:生产型函数式接口
               抽象方法:T get():用于获取一个对象或值。获取的类型和获取方式由编写Lambda实现

       Consumer消费型函数式接口
              java.util.function.Consumer<T>:消费型函数式接口
               抽象方法:void accept(T t):用于使用一个对象或值。编写Lambda实现
               默认方法:default Consumer<T> andThen(Consumer<? super T> after):
                       拼接两个Consumer接口的Lambda对象实现连续操作,谁写前面,谁先消费

       Predicate条件判断函数式接口
              java.util.function.Predicate<T>:条件判断函数式接口
               抽象方法:boolean test<T t>:判断参数传递的对象。编写Lambda实现
               默认方法:default Predicate<T> and(Predicate<? suprt T> other):与
                               default Predicate<T> and(Predicate<? super T> other):或
                               default Predicate<T> negate():非,取相反结果

       Function根据一个T类型的数据 转换为 一个R类型的数据
              T为前置条件,也就是输入(input)的类型
               R为后置条件,也就是返回结果(result)的类型
               抽象方法:R apply(T t):将T转换为R
               默认方法:default <V> Function<T, V> andThen(Function<? super R, ? extends V> after):拼接多个Function转换







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2