Java8之函数式接口@FunctionalInterface和lambada表达式

发布时间 2023-12-22 17:58:10作者: zzusjw

跟着孙哥学Spring,b站:https://www.bilibili.com/video/BV185411477k/?spm_id_from=333.337.search-card.all.click

在Java中,函数式接口和Lambda表达式是一种常见的编程模式,主要用于简化代码和提高代码的可读性。

函数式接口(Functional Interface)

函数式接口是Java 8中引入的一个新概念,它是指只有一个抽象方法的接口。这种接口可以被隐式转换为Lambda表达式。函数式接口可以使用@FunctionalInterface注解标记,这样如果你的接口不符合函数式接口的定义,编译器会报错。

例如,我们定义一个函数式接口MyFunctionalInterface

@FunctionalInterface
public interface MyFunctionalInterface {
    void execute();
}

Lambda表达式(Lambda Expression)

Lambda表达式是Java 8中引入的一种新的编程构造,它是一种简洁的表示匿名函数(即没有声明的函数)的方式。Lambda表达式主要用来编写简洁、可读性高的代码,尤其在使用函数式接口或者方法需要作为参数的情况下。

Lambda表达式的基本语法是:(parameters) -> expression(parameters) -> { statements; }

例如,我们可以使用Lambda表达式来实现上面定义的函数式接口:

MyFunctionalInterface myFunc = () -> System.out.println("Executing...");
myFunc.execute();  // 输出 "Executing..."

在这个例子中,() -> System.out.println("Executing...")就是一个Lambda表达式,它实现了MyFunctionalInterface接口的execute方法。

总的来说,函数式接口和Lambda表达式是Java 8中引入的重要特性,它们使得Java的函数式编程成为可能,大大提高了代码的简洁性和可读性。