@interface是什么时候在java中引入的?

时间:2014-11-29 14:17:17

标签: java annotations

我知道这个@interface元素用于在Java中定义注释 我知道Java 5中引入了注释。

我的问题:

1)该元素如何被称为(正式),以及何时被称为 它是否被编译器识别,即何时被引入?
它是注释还是元注释本身?

2)在Java 8之前(例如在Java 5或6中)有一些其他元素/方式
用于定义注释或者它们总是被定义为 自从他们出现在语言中以来的方式?

1 个答案:

答案 0 :(得分:3)

  

该元素如何被称为(正式),并且从何时被编译器识别,即何时被引入?

annotation type declaration。这是在Java 5中添加的。

  

它是注释还是元注释本身?

不,@interface本身不是注释,它只是interface前面的关键字@。它不是元注释。元注释是可以在注释类型声明上使用的注释。 JDK本身有很多(例如@RetentionPolicy)。

  在Java 8之前的

(例如在Java 5或6中)是否存在用于定义注释的其他元素/方式

没有

  

或者自从他们出现语言以来,他们总是以这种方式定义?

Java 5中添加了注释,@interface始终是创建注释的方法;过去没有任何其他机制来创建注释。

为什么@interface而不是新的关键字,例如annotation:这是为了向后兼容而完成的。添加新关键字意味着您立即创建向后兼容性问题,因为为旧版本编写的程序可能使用关键字的名称作为变量名称。这些程序将不再编译新版本。因此,当他们想要为Java添加新功能时,Oracle更喜欢重用现有关键字而不是创建新关键字。

也就是说,在Java的发展过程中添加了新的关键字,例如enumassert(在Java 1.4中添加)。