-
@Documented @Retention(RUNTIME) @Target(TYPE) public @interface FunctionalInterface
用于指示接口类型声明旨在作为Java语言规范定义的功能接口的信息性注释类型。 在概念上,功能界面只有一个抽象方法。 由于default methods有一个实现,它们不是抽象的。 如果接口声明了一个抽象方法覆盖的公共方法之一java.lang.Object
,也不会向接口的抽象方法计数统计以来的接口的任何实施都会有一个实现从java.lang.Object
或其他地方。请注意,可以使用lambda表达式,方法引用或构造函数引用创建函数接口的实例。
如果使用此注释类型注释类型,则编译器需要生成错误消息,除非:
- 类型是接口类型,而不是注释类型,枚举或类。
- 注释类型满足功能界面的要求。
但是,无论接口声明中是否存在
FunctionalInterface
注释,编译器将将满足功能接口定义的任何接口视为功能接口。- 从以下版本开始:
- 1.8
- See The Java™ Language Specification:
- 4.3.2。 类对象,9.8功能接口,9.4.3接口方法体,9.6.4.9 @功能接口