在接口中加注解,@FunctionalInterface代表这个接口是函数式接口,只能有一个抽象方法。
函数式接口作为方法的返回值
常用的函数式接口
Supplier接口
在Java中,我们只能往方法中传入对象,但不能传入方法。
在JDK8之后,java可以通过函数式编程——Lambda语句来传入方法。
消费者的意思是,方法没有返回参数,生产者的意思是,方法有返回参数。
在这个例子中,我们先建立了一个方法。
operatorString(),传入的是两个参数,一个是String,另一个是接口,但接口我们可以通过Lambda语句,快速实现。就相当于我们往函数中传入了一个函数,从而实现函数式编程的方法。
我认为,利用lambda这种函数式接口的方式,我们可以给变量和函数创建一个运行环境。
在运行时只需要输入变量和环境就行。
在方法中的str是来源于,printInfo提供的环境的。类似于闭包。
Predicate接口
negate()方法的用法。
and()方法的用法。
方法一:只把Predicate当成判断语句来用
方法二:一步到位
Function接口