我知道它可以在 interface 上应用,但是由于具有默认方法的接口(Java 8+ Interfaces)现在非常接近抽象类,所以我想知道现在我们可以在 @FunctionalInterface中使用抽象类?
如果不是为什么我们不能?
答案 0 :(得分:4)
您不能将@FunctionalInterface
应用于抽象类,枚举或其他注释。来自java doc:
如果使用该注释类型对类型进行注释,则编译器必须生成错误消息,除非:
- 该类型是接口类型,而不是注释类型,枚举或类。
- 带注释的类型满足功能接口的要求。
答案 1 :(得分:1)
顾名思义,它应该用于接口。将其应用于类将产生以下结果:
错误:(10,1)java:意外的@FunctionalInterface批注 xxx不是功能界面
但这不是什么大问题,因为这只是一个方法接口的标记接口。
答案 2 :(得分:-1)