java知识学习46-函数式接口


函数式接口:有且仅有一个抽象方法的接口,接口中可以有default、static、private修饰的非抽象方法。

如何检测一个接口是不是函数式接口呢?通过在接口定义的上方添加@FunctionalInterface注解,若接口是函数式接口则编译通过,否则编译失败。

   注:我们自定义的函数式接口,只要满足其要求的条件也照样是函数式接口,可以不用添加@FunctionalInterface注解。但建议是加上该注解

       

函数式接口作为方法的参数:如果方法的参数是一个函数式接口,可以使用Lambda表达式作为参数传递。

 函数式接口作为方法的返回值:如果方法的返回值式一个函数式接口,可以使用Lambda表达式作为结果返回。

   调用的方法   

常用的函数式接口:Supplier接口、Consumer接口、Predicate接口、Function接口

   Supplier接口:包含一个无参的方法get();该方法用于获得结果,接口中传入什么类型就返回什么类型的数据。

  Consumer接口:也被称为消费型接口,它消费的数据的数据类型由泛型指定。

    常用的方法:

      

    范例:

      

   Predicate接口:用来表示一个参数的Boolean类型。

    常用方法:

    范例:

   Function接口:表示接收一个参数,并返回结果的函数。

    范例:

      

相关