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

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

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

九州编程 2022-07-27 21:02:36
我知道它可以应用于接口,但是由于具有默认方法的接口(Java 8+ 接口)现在非常接近抽象类,现在想知道我们可以将@FunctionalInterface 与抽象类一起使用吗?如果不是,为什么我们不能?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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

如果使用此注解类型对类型进行注解,则编译器需要生成错误消息,除非:

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

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

查看更多抽象类作为功能接口


查看完整回答
反对 回复 2022-07-27
?
慕田峪4524236

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

顾名思义,它应该用于接口。将其应用于类结果如下:

错误:(10, 1) java: Unexpected @FunctionalInterface 注解 xxx 不是函数式接口

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


查看完整回答
反对 回复 2022-07-27
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

功能接口是为了特定目的而存在的——它只与严格来说只有一个抽象方法的接口一起使用。如果不是,那么编译器会抱怨 -

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

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

并且将它与任何其他类一起使用是没有意义的,枚举东西


查看完整回答
反对 回复 2022-07-27
  • 3 回答
  • 0 关注
  • 105 浏览

添加回答

举报

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