模块  java.base
软件包  java.lang

Annotation Type FunctionalInterface


  • @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 @FunctionalInterface