我知道这个@interface元素用于在Java中定义注释 我知道Java 5中引入了注释。
我的问题:
1)该元素如何被称为(正式),以及何时被称为
它是否被编译器识别,即何时被引入?
它是注释还是元注释本身?
2)在Java 8之前(例如在Java 5或6中)有一些其他元素/方式
用于定义注释或者它们总是被定义为
自从他们出现在语言中以来的方式?
答案 0 :(得分:3)
该元素如何被称为(正式),并且从何时被编译器识别,即何时被引入?
annotation type declaration。这是在Java 5中添加的。
它是注释还是元注释本身?
不,@interface
本身不是注释,它只是interface
前面的关键字@
。它不是元注释。元注释是可以在注释类型声明上使用的注释。 JDK本身有很多(例如@RetentionPolicy
)。
在Java 8之前的(例如在Java 5或6中)是否存在用于定义注释的其他元素/方式
没有
或者自从他们出现语言以来,他们总是以这种方式定义?
是
Java 5中添加了注释,@interface
始终是创建注释的方法;过去没有任何其他机制来创建注释。
为什么@interface
而不是新的关键字,例如annotation
:这是为了向后兼容而完成的。添加新关键字意味着您立即创建向后兼容性问题,因为为旧版本编写的程序可能使用关键字的名称作为变量名称。这些程序将不再编译新版本。因此,当他们想要为Java添加新功能时,Oracle更喜欢重用现有关键字而不是创建新关键字。
也就是说,在Java的发展过程中添加了新的关键字,例如enum
和assert
(在Java 1.4中添加)。