更具功能性:Java的功能性接口

这篇文章是关于Java提供的功能接口的。我们将简要讨论基本的。这些功能接口被  Streams API大量使用,因此了解它们将使你的生活更轻松。除非你愿意,不只是流,你还可以在任何地方使用它。你可以在GitHub  和整个项目上找到代码

先决条件

只要确保你对功能接口和lambda有了深刻的了解。这篇文章取决于这些概念。

java.util.function

我们将在你的茶歇中讨论的功能接口来自  java.util.function。该软件包包含Java的通用功能接口。这有助于我们避免重复写入,从而节省了时间。

它具有许多功能接口(你的代码中可能不需要那么多),但是我们将看到最常见和最有用的功能接口。我们将其与常规方法或函数进行比较,以更好地理解。

消费者<T>

顾名思义,它Consumer消耗输入。调用时不返回任何内容。它类似于具有void返回类型的函数。此功能接口有两种方法  void accept(T t):触发​​和接口,可以触发andThen(Consumer<T>)多个使用方。

你可以使用调用多个消费者,andThen(consumer1).andThen(consumer2).....然后调用  accept(t)函数来终止链。此链中的所有使用者将使用通过给出的相同输入  accept()

更具功能性:Java的功能性接口

谓词<T>

所述Predicate用于boolean值。它测试给定值,并通过调用返回布尔值test(T t)。然后,再次与Consumer一样,您可以使用与的链接and(anotherPredicate)test(T)最后致电时,我们将完成整个链。与消费者相似,他们在整个链中使用相同的输入。仅当所有谓词都返回true时,它才返回true;否则,它仅返回true。否则,它返回false。

更具功能性:Java的功能性接口

函数<T,R>

是的,那是名字。与前面的接口不同,它Function具有两个通用参数。第一个参数用于输入类型,第二个参数用于返回类型。本质上,  Function用于将给定值转换为所需值。

功能  apply(T t)用于其功能和andThen(anotherFuntion)链接。但是,与Consumer和  不同   Predicate,此链接并未对所有都使用相同的值Functions。 而是使用前一个的结果  Function。但是,请记住,随后  Function的输入类型与当前的Function’s返回类型等效  。

更具功能性:Java的功能性接口

BiFunction <T,U,V>

BiFunction与相似Function,不同之处在于   接受两个输入参数,而不是   Function ,后者仅处理一个输入。它apply(T t, U u)用于触发。使用此方法Function而不是  使用BiFuntionin进行链接  andThen(Function<V v, E e>),因为方法没有两个返回值。

更具功能性:Java的功能性接口

供应商<T>

到目前为止,我们已经讨论了采用输入参数的接口。Supplier另一方面,不要求任何论点;它只是通过调用产生一个get(),类似于产生没有输入值的方法,例如toString()hashCode()。我们不能在其中使用链接,因为它不接受输入参数。

更具功能性:Java的功能性接口

等等,还有更多!

软件包中还有更多的功能接口。它们是针对特定挑战或用途的上述功能接口的实现。我们不必了解每个功能接口。如果你了解我们所讨论的接口,那将是你的最佳选择。让我们简要地看一下。

以下示例表来自Java文档。

更具功能性:Java的功能性接口

有什么问题可以加下qq:2062583349。也可添加vx:admindesire,有java、python、web等习资料和视频课程干货”。欢迎交流!