Module java.base
Package java.lang

Annotation Interface Deprecated


一个被注解为@Deprecated的程序元素是程序员被劝阻使用的元素。一个元素可能被弃用的原因有很多,例如,它的使用可能会导致错误;它可能会在将来的版本中发生不兼容的更改或被移除;它已被更新为一个通常更好的替代品;或者它已经过时。

当一个被弃用的程序元素被用于非被弃用的代码中或被覆盖时,编译器会发出警告。在局部变量声明或参数声明或包声明上使用@Deprecated注解对编译器发出的警告没有影响。

当一个模块被弃用时,在requires中使用该模块,但不在exportsopens子句中使用会导致发出警告。一个被弃用的模块不会导致对模块内类型的使用发出警告。

这个注解类型有一个字符串值元素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

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    表示被注解的元素是否会在将来的版本中被移除。
    返回被弃用的元素的版本。
  • Element Details

    • since

      String since
      返回被弃用的元素的版本。版本字符串与@since javadoc标签的值的格式和命名空间相同。默认值为空字符串。
      返回:
      版本字符串
      自版本:
      9
      默认值:
      ""
    • forRemoval

      boolean forRemoval
      表示被注解的元素是否会在将来的版本中被移除。默认值为false
      返回:
      元素是否会被移除
      自版本:
      9
      默认值:
      false