@Deprecated(since) and Javadoc

Stuart Marks stuart.marks at oracle.com
Thu Apr 21 21:54:43 UTC 2016


On 4/21/16 9:51 AM, Paul Benedict wrote:
> Is there a requirement that the new "since" attribute on @j.l.Deprecated
> lead to an automatic JavaDoc @deprecated in the doc generation? It's a bona
> fide replacement, right?
>
> I'm just curious because I think, if that's true, @j.l.Deprecated should
> mention this tool coordination in its own JavaDoc header.

I'm not sure what you mean by "since" in the annotation leading to an 
"automatic" javadoc tag.

But to clarify, the @Deprecated annotation and the @deprecated javadoc tag are 
complementary; neither is a replacement for the other. The annotation contains 
"since" and "forRemoval" information and ends up in memory at runtime, since it 
has runtime retention. The javadoc tag should have descriptive text that 
explains the rationale for deprecation, risks of using, preferred alternatives, etc.

It should be considered an error to have the annotation without the javadoc tag 
and vice-versa. Javac does some checking in this regard, but it only does the 
check in one direction! The tools should check both. See

https://bugs.openjdk.java.net/browse/JDK-8141234

Aside from that, if you think something needs to be clarified in the doc for the 
@Deprecated annotation, please suggest it. Now's the time.

s'marks



More information about the core-libs-dev mailing list