JAVA中的函数接口,你都用过吗

打印 上一主题 下一主题

主题 931|帖子 931|积分 2793

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。
在这篇文章中,我们将通过示例来学习 Java 函数式接口。
函数式接口的特点


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

创建一个自定义的Sayable接口,这是一个使用@FunctionalInterface注解的函数式接口。
@FunctionalInterface注解表示该接口是一个函数式接口,并且只包含一个抽象方法。
自定义函数接口示例
  1. @FunctionalInterface  
  2. interface Sayable{  
  3.     void say(String msg);   // abstract method   
  4. }  
复制代码
让我们通过main()方法来演示一个自定义的函数式接口。我们使用Lambda表达式来实现函数式接口。
  1. public class FunctionalInterfacesExample {
  2.     public static void main(String[] args) {
  3.         Sayable sayable = (msg) -> {
  4.             System.out.println(msg);
  5.         };
  6.         sayable.say("Say something ..");
  7.     }
  8. }
复制代码
Predefined 函数接口

Java提供了Predefined的函数式接口,通过使用 lambda 和方法引用来处理函数式编程。
Predicate是检查条件的函数,它接受一个参数并返回boolean结果。
让我们来看一下Predicate接口的内部实现。
[code]import java.util.function.Predicate;public interface Predicate {    boolean test(T t);    default Predicate and(Predicate
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表