Don't forget to add the @deprecated
Javadoc tag:
/*** Does some thing in old style.** @deprecated use {@link #new()} instead. */@Deprecatedpublic void old() {// ...}
Use both @Deprecated
annotation and the @deprecated
JavaDoc tag.
The @deprecated
JavaDoc tag is used for documentation purposes.
The @Deprecated
annotation instructs the compiler that the method is deprecated. Here is what it says in Sun/Oracles document on the subject:
Using the
@Deprecated
annotation to deprecate a class, method, or field ensures that all compilers will issue warnings when code uses that program element. In contrast, there is no guarantee that all compilers will always issue warnings based on the@deprecated
Javadoc tag, though the Sun compilers currently do so. Other compilers may not issue such warnings. Thus, using the@Deprecated
annotation to generate warnings is more portable that relying on the@deprecated
Javadoc tag.
You can find the full document at How and When to Deprecate APIs
since some minor explanations were missing
Use @Deprecated
annotation on the method like this
/*** @param basePrice* * @deprecated reason this method is deprecated <br/>* {will be removed in next version} <br/>* use {@link #setPurchasePrice()} instead like this: * * * <blockquote><pre>* getProduct().setPurchasePrice(200) * </pre></blockquote>* */@Deprecatedpublic void setBaseprice(int basePrice) {}
<br/>
{@link #setPurchasePrice()}
There are two things you can do:
@Deprecated
annotation to the method, and@deprecated
tag to the javadoc of the methodYou should do both!
Quoting the java documentation on this subject:
Starting with J2SE 5.0, you deprecate a class, method, or field by using the @Deprecated annotation. Additionally, you can use the @deprecated Javadoc tag tell developers what to use instead.
Using the annotation causes the Java compiler to generate warnings when the deprecated class, method, or field is used. The compiler suppresses deprecation warnings if a deprecated compilation unit uses a deprecated class, method, or field. This enables you to build legacy APIs without generating warnings.
You are strongly recommended to use the Javadoc @deprecated tag with appropriate comments explaining how to use the new API. This ensures developers will have a workable migration path from the old API to the new API
Use the annotation @Deprecated
for your method, and you should also mention it in your javadocs.
Take a look at the @Deprecated
annotation.
Along with @Deprecated annotation on the method, include a message why it was deprecated and what is the alternate option to use.
/*** @deprecated* explain here why the method was deprecated, suggest alternate option to * use*/
Example message
Deprecated, for removal: This API element is subject to removal in a future version. since 3.0.0 in favor of bstractCompositeHealthContributorConfiguration(Function)
You must annotate the service @Deprecated