我猜@FuntionalInterface 甚至在 Java 8 之前就存在(尽管没有直接命名为具有单一方法@FunctionalInterface
的接口)。它只是一个标记接口还是会触发编译器检查以确保该接口包含一个且只有一个可以在 lambda 表达式中使用的方法?Comparator
Comparable
问问题
43 次
1 回答
1
它甚至不是一个标记。从@FunctionalInterface
API:
一种信息性注释类型,用于指示接口类型声明旨在成为Java 语言规范定义的功能接口。
(突出显示由我添加)
它还用 注释@Documented
,因此该注释的存在将出现在例如 javadocs 中。
但是,它提供了一些编译时安全性。如果带注释的接口有多个非默认方法,我们将收到编译错误。
于 2021-08-20T20:38:07.727 回答