我们可以将@FunctionalInterface注释应用于Java中的抽象类吗?

我知道它可以应用于接口,但是由于具有默认方法的接口(Java 8 +接口)现在非常接近抽象类,现在只是想知道我们可以将@FunctionalInterface与抽象类一起使用吗

如果不是,为什么我们不能?


萧十郎
浏览 114回答 3
3回答

Smart猫小萌

顾名思义,它应用于接口。将其应用于类会产生以下结果:错误:(10, 1) java: 意外@FunctionalInterface注释 xxx 不是功能接口但这不是一个大问题,因为这只是一个具有一种方法的接口的标记接口。

蛊毒传说

不能应用于抽象类、枚举或其他注释。来自 java doc:@FunctionalInterface如果某个类型是用此注释类型批注的,则编译器需要生成错误消息,除非:该类型是接口类型,而不是注释类型、枚举或类。带注释的类型满足功能接口的要求。查看更多抽象类作为函数接口

四季花海

功能接口用于特定目的 - 它仅用于严格具有一个且只有一个抽象方法的接口。如果不是,那么编译器会抱怨 -Invalid '@FunctionalInterface' annotation; TestInterface is not a functional interface而且将其与任何其他类一起使用都没有意义,枚举内容
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java