java知识学习46-函数式接口
函数式接口:有且仅有一个抽象方法的接口,接口中可以有default、static、private修饰的非抽象方法。
如何检测一个接口是不是函数式接口呢?通过在接口定义的上方添加@FunctionalInterface注解,若接口是函数式接口则编译通过,否则编译失败。
注:我们自定义的函数式接口,只要满足其要求的条件也照样是函数式接口,可以不用添加@FunctionalInterface注解。但建议是加上该注解
函数式接口作为方法的参数:如果方法的参数是一个函数式接口,可以使用Lambda表达式作为参数传递。
函数式接口作为方法的返回值:如果方法的返回值式一个函数式接口,可以使用Lambda表达式作为结果返回。
调用的方法
常用的函数式接口:Supplier接口、Consumer接口、Predicate接口、Function接口
Supplier接口:包含一个无参的方法get();该方法用于获得结果,接口中传入什么类型就返回什么类型的数据。
Consumer接口:也被称为消费型接口,它消费的数据的数据类型由泛型指定。
常用的方法:
范例:
Predicate接口:用来表示一个参数的Boolean类型。
常用方法:
范例:
Function接口:表示接收一个参数,并返回结果的函数。
范例: