@Documented @Retention(RUNTIME) @Target({CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,MODULE,PARAMETER,TYPE}) public @interface Deprecated
一个被注解为
@Deprecated
的程序元素是程序员被劝阻使用的元素。一个元素可能被弃用的原因有很多,例如,它的使用可能会导致错误;它可能会在将来的版本中发生不兼容的更改或被移除;它已被更新为一个通常更好的替代品;或者它已经过时。
当一个被弃用的程序元素被用于非被弃用的代码中或被覆盖时,编译器会发出警告。在局部变量声明或参数声明或包声明上使用@Deprecated
注解对编译器发出的警告没有影响。
当一个模块被弃用时,在requires
中使用该模块,但不在exports
或opens
子句中使用会导致发出警告。一个被弃用的模块不会导致对模块内类型的使用发出警告。
这个注解类型有一个字符串值元素since
。该元素的值指示被注解的程序元素首次被弃用的版本。
这个注解类型有一个布尔值元素forRemoval
。值为true
表示打算在将来的版本中移除被注解的程序元素。值为false
表示被弃用的程序元素被劝阻使用,但在被注解的程序元素时,没有具体意图将其移除。
- API 注意:
-
强烈建议在文档中解释弃用程序元素的原因,使用
@deprecated
javadoc标签。文档还应该建议并链接到一个推荐的替代API,如果适用的话。替代API通常具有微妙不同的语义,因此这些问题也应该被讨论。建议为所有新注解的程序元素提供一个
since
值。请注意,since
不能是强制性的,因为有许多现有的注解缺乏这个元素值。注解元素之间没有定义的顺序。作为一种风格,
since
元素应该放在第一位。如果存在
@deprecated
javadoc标签,则应始终存在@Deprecated
注解,反之亦然。 - 参见 Java 语言规范:
-
9.6.4.6 @Deprecated
- 自版本:
- 1.5
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
表示被注解的元素是否会在将来的版本中被移除。返回被弃用的元素的版本。
-
Element Details
-
since
String since返回被弃用的元素的版本。版本字符串与@since
javadoc标签的值的格式和命名空间相同。默认值为空字符串。- 返回:
- 版本字符串
- 自版本:
- 9
- 默认值:
-
""
-
forRemoval
boolean forRemoval表示被注解的元素是否会在将来的版本中被移除。默认值为false
。- 返回:
- 元素是否会被移除
- 自版本:
- 9
- 默认值:
-
false
-