ChatGPT解决这个技术问题 Extra ChatGPT

Android Deprecated Annotation 已弃用,替代品是什么?

https://i.stack.imgur.com/U2JFj.png

编辑:添加了网络存档 link 以供历史参考。

很讽刺,我想知道他们是否自己使用了注释
@assylias 基于 list “级别 S” 将是 API 31 又名 Android 12,将于今年发布(API 30 是“R”,“S”是字母表中的下一个)。
@Robert 如何在尚未发布的 API 级别中弃用某些东西?
根据 time table of Android 12,应该可以使用第一个开发者预览版。这些版本很可能尚未公开,仅适用于 Android 设备制造商。因此“未发布”可能是错误的,它只是没有公开发布。

S
Stephen C

这是一个文档错误。 (它已被修复!)

Deprecated 注释并未真正被弃用。

显然发生的事情是 Deprecated 的源代码在其 javadoc 注释中包含此内容:

 * @apiNote
 * It is strongly recommended that the reason for deprecating a program element
 * be explained in the documentation, using the {@code @deprecated}
 * javadoc tag. 

显然,metalava 工具将 {@code @deprecated} 解释为 @deprecated javadoc 标记。这导致 metalava 将“缺失的”@Deprecated 注释注入到 Android JAR 文件中的“.class”文件中。据推测,注入的注释随后被合并到网站上生成的 javadocs 中。

感谢 Manohar Reddy 在问题跟踪器中找到 bug

您可以找到他们所做的修复 here

值得一提的是,java.lang.Deprecated 是一个源自 Oracle / OpenJDK Java(即标准 Java)类库的类。 Android 不会/不应该在没有充分理由的情况下故意弃用它。它会给 Java 带来另一个障碍 <->安卓便携。


不过,那会很有趣:)