2024年java基础函数式接口

java基础函数式接口公众号 架构成长指南 专注于生产实践 云原生 分布式系统 大数据技术分享 在这篇文章中 我们将通过示例来学习 Java 函数式接口 函数式接口的特点 只包含一个抽象方法的接口称为函数式接口 它可以有任意数量的默认静态方法 但只能包含一个抽象方法 它还可以声明对象类的方法 函数接口也称为单一抽象方法接口或 SAM 接口 函数式接口只有在没有任何抽象方法时才可以扩展另一个接口

大家好,我是讯享网,很高兴认识大家。



公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。

在这篇文章中,我们将通过示例来学习 Java 函数式接口。

函数式接口的特点

  1. 只包含一个抽象方法的接口称为函数式接口。
  2. 它可以有任意数量的默认静态方法,但只能包含一个抽象方法。它还可以声明对象类的方法。
  3. 函数接口也称为单一抽象方法接口或SAM 接口。
  4. 函数式接口只有在没有任何抽象方法时才可以扩展另一个接口。
  5. Java API 具有许多单方法接口,例如 Runnable、Callable、Comparator、ActionListener等。它们可以使用匿名类语法来实现和实例化。

接口示例

自定义函数接口示例

 
讯享网 

让我们通过方法来演示一个自定义的函数式接口。我们使用Lambda表达式来实现函数式接口。

讯享网

Predefined 函数接口

Java提供了的函数式接口,通过使用 lambda 和方法引用来处理函数式编程。

是检查条件的函数,它接受一个参数并返回boolean结果。

让我们来看一下Predicate接口的内部实现。

 

Predicate接口只包含一个抽象方法test(T t)同时它还包含默认方法和静态方法。

让我们创建一个示例来演示Predicate函数式接口的用法:

讯享网

Function 函数接口

Function函数接口是Java中的一个函数式接口,它定义了一个接收一个参数并返回结果的函数。它的定义如下:

 

Function接口有两个泛型参数:T表示输入参数的类型,R表示返回结果的类型。它包含一个抽象方法apply(),接收一个类型为T的参数,并返回一个类型为R的结果。

Function接口常用于将一个值转换为另一个值,或者对输入值进行处理和计算。它可以被用于各种场景,如数据转换、映射、计算和处理等。

以下是一个使用Function函数接口的示例:

 

Supplier 函数接口

Supplier用于表示一个提供(供应)结果的函数。它通常用于延迟计算或在需要时生成值。通过调用get()方法,我们可以获取由Supplier实例提供的结果。

以下是Consumer接口的实现

 

由于Supplier接口只有一个抽象方法,因此可以使用lambda表达式快速创建Supplier实例。下面是一个示例:

 

Consumer 函数接口

Consumer用于表示接受一个参数并执行某些操作的函数。它定义了一个名为的抽象方法,接受一个参数,并且没有返回值。

以下是Consumer接口的简化版本

 
 

在上述示例中,我们创建了两个Consumer接口的实例。第一个printName用于打印每个名字,第二个uppercaseName用于将每个名字转换为大写形式并打印。

通过调用forEach()方法并传入相应的Consumer接口实例,我们可以对列表中的每个元素执行相应的操作。在示例中,我们对名字列表中的每个名字进行了打印和转换操作。

Consumer接口的使用场景包括遍历集合、处理回调函数、更新对象状态等。它提供了一种简洁的方式来执行针对输入参数的操作,使得代码更加清晰和模块化。

BiFunction 函数接口

函数式接口表示接受两个参数并返回结果的函数。它定义了一个名为的抽象方法,接受两个参数,并返回一个结果。

让我们来看一下接口的简化版本。

 
 

BiConsumer函数接口

接口,用于表示接受两个参数并执行某些操作的函数。它定义了一个名为的抽象方法,接受两个参数,并且没有返回值。

以下是BiConsumer接口的简化版本:

 
 
那些库或中间件再用BiConsumer

java基础函数式接口

BiPredicate 函数接口

接口用于表示接受两个参数并返回一个布尔值的函数。它定义了一个名为test(T t, U u)的抽象方法,接受两个参数,并返回一个布尔值。

以下是BiPredicate接口的简化版本:

 

BiPredicate接口适用于那些需要对传入的两个参数进行某种条件判断,并返回布尔值的情况。它可以用于执行各种条件判断,如相等性比较、大小比较、复杂条件判断等。

下面是一个使用BiPredicate接口的示例:

小讯
上一篇 2024-12-28 07:02
下一篇 2024-12-26 16:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/3256.html