本文主要是介绍关于函数式接口中常用的Supplier、Consumer、predicate、Function的总结以及其使用场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先介绍一下函数式接口:
**函数式接口在Java中是指:有且仅有一个抽象方法的接口。
函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可
以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。
**
在JDK中为我们提供了大量的函数式接口,其中较为简单和常用的为以下4个:
Supplier、Consumer、predicate、Function.
Supplier接口:
java.util.function.Supplier 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。
Consumer接口:
java.util.function.Consumer 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定的.
Predicate接口:
有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果。这时可以使用 java.util.function.Predicate 接口。
Function接口:
java.util.function.Function<T,R> 接口用来根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件.
**4种函数式接口使用场景个人总结:
Supplier(生产者) :他的泛型一定和方法的返回值类型是一种类型
如果需要获得一个数据,并且不需要传入参数,可以使用Supplier接口.
Consumer(消费者):如果想要处理一个数据,但是不需要返回值,可以使用Consumer接口
predicate(判断):如果想要判断一个数据,并且需要一个布尔类型的返回值,可以使用predicate接口.
Function(函数):如果想要进行属性之间的转换,如String->Integer,则需要使用Function接口,
Function的泛型一般有两种类型,前面的类型表示传入的参数类型,后面的类型表示返回值类型.**
这篇关于关于函数式接口中常用的Supplier、Consumer、predicate、Function的总结以及其使用场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!