“单一方法接口” 和 “函数式接口” 是指同一类接口,它们都是指只包含一个抽象方法的接口。
在Java中,如果一个接口只有一个抽象方法,那么它被称为函数式接口。这是因为函数式接口可以被看作是一个函数的签名,可以用Lambda表达式来实现。
举例来说,以下是一个简单的函数式接口示例:
@FunctionalInterface
interface MyInterface {
void myMethod();
}
这里的 @FunctionalInterface
注解是可选的,但它可以用来显式地标记一个接口为函数式接口。如果一个接口被标记为 @FunctionalInterface
,但包含多于一个抽象方法,编译器会产生一个错误。
函数式接口可以用Lambda表达式或者方法引用来创建实例,使得代码变得更为简洁和易读。
例如,我们可以使用Lambda表达式来实例化上面的 MyInterface
接口:
public class Main {
public static void main(String[] args) {
MyInterface myInterface = () -> System.out.println("Hello from Lambda");
myInterface.myMethod(); // 输出: Hello from Lambda
}
}
所以,单一方法接口和函数式接口是等价的术语,它们指的是只包含一个抽象方法的接口。