Java 中函数式接口的规则有哪些?
一个函数 接口 是一类特殊的接口,其中正好包含一个抽象方法,其中 lambda 表达式参数和返回类型相匹配。它为 lambda 表达式和方法引用提供了目标类型。
函数接口的规则
- 函数接口必须恰好包含一个抽象方法。
- 函数接口包含任意数量的默认方法,因为它们不是抽象的且已经由函数接口本身提供了实现。
- 函数接口声明一个抽象方法来覆盖java.lang.Object 中的一个公共方法,这仍然被认为是函数接口。其原因是任何实现此接口的实现类都可以为该抽象方法提供实现,具体可通过超类 或由实现类本身来定义。
语法
@FunctionalInterface
interface <interface-name> {
// only one abstract method
// static or default methods
}示例
import java.util.Date;
@FunctionalInterface
interface DateFunction {
int process();
static Date now() {
return new Date();
}
default String formatDate(Date date) {
return date.toString();
}
default int sum(int a, int b) {
return a + b;
}
}
public class LambdaFunctionalInterfaceTest {
public static void main(String[] args) {
DateFunction dateFunc = () -> 77; // lambda expression
System.out.println(dateFunc.process());
}
}输出
77
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP