01 语言基础+高级:1-10 JDK8新特性_day12【函数式接口】

day12【函数式接口】

主要内容
自定义函数式接口
函数式编程
常用函数式接口

教学目标
能够使用@FunctionalInterface注解
能够自定义无参无返回函数式接口
能够自定义有参有返回函数式接口
能够理解Lambda延迟执行的特点
能够使用Lambda作为方法的参数
能够使用Lambda作为方法的返回值
能够使用Supplier函数式接口
能够使用Consumer函数式接口
能够使用Function函数式接口
能够使用Predicate函数式接口


02_函数式接口的概念&函数式接口的定义 

函数式接口在Java中是指:有且仅有一个抽象方法的接口

函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。

03_函数式接口的使用

/*
    函数式接口的使用:一般可以作为方法的参数和返回值类型
 */
public class Demo {
    //定义一个方法,参数使用函数式接口MyFunctionalInterface
    public static void show(MyFunctionalInterface myInter){
        myInter.method();
    }

    public static void main(String[] args) {
        //调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象
        show(new MyFunctionalInterfaceImpl());

        //调用show方法,方法的参数是一个接口,所以我们可以传递接口的匿名内部类
        show(new MyFunctionalInterface() {
            @Override
            public void method() {
                System.out.println("使用匿名内部类重写接口中的抽象方法");
            }
        });

        //调用show方法,方法的参数是一个函数式接口,所以我们可以Lambda表达式
        show(()->{
            System.out.println("使用Lambda表达式重写接口中的抽象方法");
        });

        //简化Lambda表达式
        show(()-> System.out.println("使用Lambda表达式重写接口中的抽象方法"));
    }
}
函数式接口的使用:一般可以作为方法的参数和返回值类型

第二章 函数式编程

在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门。下面我们做一个初探。
有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能。 

04_性能浪费的日志案例



 

=========================================

end

猜你喜欢

转载自www.cnblogs.com/MarlonKang/p/11903443.html