image.png

    image.png

    在接口中加注解,@FunctionalInterface代表这个接口是函数式接口,只能有一个抽象方法。


    函数式接口作为方法的返回值

    image.png

    image.png

    image.png


    常用的函数式接口
    image.png

    Supplier接口

    image.png

    image.png
    image.png

    image.png

    image.png

    image.png


    image.png

    在Java中,我们只能往方法中传入对象,但不能传入方法。

    在JDK8之后,java可以通过函数式编程——Lambda语句来传入方法。

    消费者的意思是,方法没有返回参数,生产者的意思是,方法有返回参数。
    image.png

    在这个例子中,我们先建立了一个方法。

    operatorString(),传入的是两个参数,一个是String,另一个是接口,但接口我们可以通过Lambda语句,快速实现。就相当于我们往函数中传入了一个函数,从而实现函数式编程的方法。

    image.png
    image.png

    image.png

    我认为,利用lambda这种函数式接口的方式,我们可以给变量和函数创建一个运行环境。

    在运行时只需要输入变量和环境就行。

    image.png
    image.png

    在方法中的str是来源于,printInfo提供的环境的。类似于闭包。


    Predicate接口
    image.png

    negate()方法的用法。

    image.png

    and()方法的用法。

    image.png

    image.png

    方法一:只把Predicate当成判断语句来用
    image.png

    方法二:一步到位

    image.png


    Function接口
    image.png

    image.png

    image.png