为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2022-08-03 12:56:47
我知道它可以应用于接口,但是由于具有默认方法的接口(Java 8 +接口)现在非常接近抽象类,现在只是想知道我们可以将@FunctionalInterface与抽象类一起使用吗?如果不是,为什么我们不能?
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

顾名思义,它应用于接口。将其应用于类会产生以下结果:

错误:(10, 1) java: 意外@FunctionalInterface注释 xxx 不是功能接口

但这不是一个大问题,因为这只是一个具有一种方法的接口的标记接口。


查看完整回答
反对 回复 2022-08-03
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

不能应用于抽象类、枚举或其他注释。来自 java doc@FunctionalInterface

如果某个类型是用此注释类型批注的,则编译器需要生成错误消息,除非:

  • 该类型是接口类型,而不是注释类型、枚举或类。

  • 带注释的类型满足功能接口的要求。

查看更多抽象类作为函数接口


查看完整回答
反对 回复 2022-08-03
?
四季花海

TA贡献1811条经验 获得超5个赞

功能接口用于特定目的 - 它仅用于严格具有一个且只有一个抽象方法的接口。如果不是,那么编译器会抱怨 -

Invalid '@FunctionalInterface' annotation; TestInterface is not a functional interface

//img1.sycdn.imooc.com//62ea006400010ba806470178.jpg

而且将其与任何其他类一起使用都没有意义,枚举内容


查看完整回答
反对 回复 2022-08-03
  • 3 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信