java - @Deprecated 与 @Deprecated() 有什么区别?
问题描述
今天遇到了这个@Deprecated()
。很想知道@Deprecated
vs@Deprecated()
但两者都Deprecated
被编译器解析为相同的接口。
它们是不同的还是相同的?是否有一些练习可以使用一个而不是另一个?
解决方案
他们俩的意思是一样的。@Deprecated
只是 . 的简写@Deprecated()
。见§9.7.2。Java 语言规范的标记注释:
标记注释是设计用于标记注释类型(第 9.6.1 节)的简写。
MarkerAnnotation: @ TypeName
它是普通注释的简写:
@TypeName()
对带有元素的注释类型使用标记注释是合法的,只要所有元素都有默认值(第 9.6.2 节)。
示例 9.7.2-1。标记注释
这是一个使用
Preliminary
§9.6.1 中的标记注释类型的示例:@Preliminary public class TimeTravel { ... }
从 Java 8 开始,@Deprecated
注解没有元素,所以它只能是一个标记注解。然而,从 Java 9 开始,它现在有两个元素:since
和forRemoval
. 但是由于这些元素具有默认值,因此注释仍然可以用作标记注释。
推荐阅读
- reactjs - React Native 与 Expo 应用程序不呈现 FlatList
- security - 如何管理需要客户端代码密钥的 npm 包的 API 密钥?
- bash - Ansible shell 无法运行 shell 脚本任务
- java - 抛出错误时如何在 Spring Integration 中停止链?
- css - 为什么 z-index 不能与 bootstrap 一起正常工作并做出反应
- javascript - Firebase 函数:orderBy 函数不起作用
- c++ - 下面代码中使用的 for 循环是否有任何问题,因为下面的代码显示运行时错误?
- typescript - Typescript 通用类型参数柯里化
- code-composer - 在 Windows 10 上更改 TI Code Composer Studio 自动生成的 Makefile 中使用的 SHELL
- angular - 如何使 2 个芯片列表相互交互 Angular Material