函数式接口是 java 中仅含一个抽象方法的接口,主要特征如下:单抽象方法 (sam)@functionalinterface 注解可作为 lambda 表达式的目标类型流 api 中广泛使用
Java 函数式接口的特征
函数式接口(Functional Interface)是 Java 8 引入的一种接口,它仅包含一个抽象方法。这种接口的优点在于,它可以作为函数式编程中 lambda 表达式的目标类型,从而简化代码并提高可读性。
特征
@FunctionalInterface 注解显式声明接口为函数式接口。实战案例
假设我们有一个 Person 类,它表示一个人。我们定义一个函数式接口 NameFormatter 来格式化一个人的姓名:
@FunctionalInterface
public interface NameFormatter {
String formatName(Person person);
}现在,我们可以使用 lambda 表达式来实现 NameFormatter:
NameFormatter formatter = (person) -> person.getFirstName() + " " + person.getLastName();
然后,我们可以使用 formatter 来格式化一个 Person 对象的姓名:
Person person = new Person("John", "Doe");
String formattedName = formatter.formatName
(person);
System.out.println(formattedName); // 输出:John Doe