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

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

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


九州编程
浏览 109回答 3
3回答

蝴蝶刀刀

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

慕田峪4524236

顾名思义,它应该用于接口。将其应用于类结果如下:错误:(10, 1) java: Unexpected @FunctionalInterface 注解 xxx 不是函数式接口但这不是什么大问题,因为这只是带有一种方法的接口的标记接口。

慕哥6287543

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

相关分类

Java