Android 12 の preview 段階で @Deprecated
アノテーションが deprecated になったのがちょっと話題になりましたが、Android 12 Beta 1 では deprecated になったのを undeprecated にしたことが What's new in Android で語られました。
@Deprecated
アノテーションは少し特殊で、Javadoc に @deprecated
タグを記述することでもクラスやメソッドなどが非推奨であることを示します。
Android 12 では @Deprecated
アノテーションに変更があり、forRemoval
メソッドと since
メソッドが増えています。これらを用いて、非推奨となったクラスやメソッドが将来的に削除予定かどうかを簡単に示せるようになります。
このメソッドの追加にあわせて @Deprecated
アノテーションの Javadoc も拡充されていて、より詳しく @Deprecated
アノテーションの役割や挙動を説明するようになりました。
ここで Javadoc 内の @Deprecated
アノテーションを表記するために {@code @Deprecated}
と言う形でコードブロックの記法を使うようになりましたが、このコードブロック内の @Deprecated
が Javadoc の @deprecated
タグと解釈され、結果として @Deprecated
アノテーションそのものが deprecated と解釈されてしまった、というのが @Deprecated
アノテーションが deprecated となった経緯のようです。
うっかり deprecated になってしまった @Deprecated
を undeprecated にするため、コードブロック内であっても @ をエスケープする(@
にする)差分が作られ、晴れて undeprecated することができたようです。