Java函数式接口的特征
函数式接口是 java 中仅含一个抽象方法的接口,主要特征如下:单抽象方法 (sam)@functionalinterface 注解可作为 lambda 表达式的目标类型流 api 中广泛使用
Java 函数式接口的特征
函数式接口(Functional Interface)是 Java 8 引入的一种接口,它仅包含一个抽象方法。这种接口的优点在于,它可以作为函数式编程中 lambda 表达式的目标类型,从而简化代码并提高可读性。
特征
- 单抽象方法 (SAM):函数式接口只能包含一个抽象方法。
- @FunctionalInterface 注解:自 Java 8 开始,可以使用 @FunctionalInterface 注解显式声明接口为函数式接口。
- Lambda 表达式的目标类型:函数式接口可以作为 lambda 表达式的目标类型,使您可以传递一个代码块作为参数。
- 流 API 中的广泛使用:函数式接口在 Java 8 的流 API 中得到了广泛使用,用作映射、过滤和归约操作的输入和输出类型。
实战案例
假设我们有一个 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
以上就是Java函数式接口的特征的详细内容,更多请关注其它相关文章!