Java是什么时候引入@interface的?

петер.петров

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

我的问题:

1)如何(正式)调用该元素,并且由于
编译器何时识别该元素,即何时引入?
它是注解还是元注解本身?

2)在Java 8(例如Java 5或6)中是否存在其他
用于定义注释的元素/方式,或者
自从其在语言中出现以来就一直以这种方式进行定义

杰斯珀

该元素是如何(正式)调用的,以及由于编译器何时识别它,即何时引入?

一个注释类型声明这是在Java 5中添加的。

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

不,@interface本身不是注释,它只是一个关键字,interface后跟一个@这不是元注释。元注释是可以在注释类型声明中使用的注释。JDK本身有很多(例如@RetentionPolicy)。

在Java 8(例如Java 5或6)之前,还有其他一些元素/方式用于定义注释

不。

还是自从出现这种语言以来就一直以这种方式定义它们?

是的。

注释已在Java 5中添加,并且@interface始终是创建注释的方法。过去没有其他机制可以创建注释。

为什么@interface而不是这样的新关键字annotation:这样做是为了向后兼容。添加新的关键字意味着您会立即产生向后兼容性问题,因为为较早版本编写的程序可能已将关键字的名称用作变量名。这样的程序将不再在新版本上编译。因此,当他们想向Java添加新功能时,Oracle宁愿重用现有的关键字而不是创建新的关键字。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ShellExecute是什么时候引入Windows API的

什么时候(为什么)引入Python`__new __()`?

在Android中,什么时候调用Interface?

在Java中,做“==”框或拆箱比较对象和常数值是什么时候?

java-什么时候调用静态{}?

什么时候加载Java类?

什么时候应该关闭Java PreparedStatement?

什么时候处理Java批注?

“什么时候”在Kotlin中是什么意思?

-rdynamic`的功能是什么,什么时候需要?

什么时候进行输入验证的最佳实践是什么?

什么时候在Chrome中引入了S.browser_fallback_url?

什么时候在 PHP 中引入了 STRLEN 操作码?

访问令牌的到期日期是什么时候?

我的内核是什么时候更新和安装的

Flutter 说 fontFamily 是什么时候没有定义?

Spring Framework 4终止销售是什么时候?

我的VirtualBox中的VM是什么时候创建的?

Ubuntu Server 10.04的终止日期是什么时候?

jQuery的链接和级联,然后是什么时候

IDE (Pycharm) 的最佳开放时间是什么时候?

稍后重新启动,但是什么时候?

在HTML中加载视频的时间是什么时候

什么是“ENV”选项(他们的目的)创建一个Java NIO的文件系统是什么时候?

有什么方法可以找出最后一次在 Java 中访问字符串/整数是什么时候?

什么时候Java比C ++快(或者什么时候JIT比预编译快)?

java中什么时候应该使用return方法,什么时候应该使用void方法

λ什么时候是琐碎的?

什么时候解密?