Me gustaría hacer que uno de mis métodos sea "obsoleto" = ya no se usa.
Pero aún así me gustaría tenerlo en mi API. Solo quiero mostrar "advertencia" a cualquiera que use ese método.
¿Cómo puedo lograr eso?
Me gustaría hacer que uno de mis métodos sea "obsoleto" = ya no se usa.
Pero aún así me gustaría tenerlo en mi API. Solo quiero mostrar "advertencia" a cualquiera que use ese método.
¿Cómo puedo lograr eso?
Respuestas:
Uso @Deprecated
en método. No te olvides de aclarar el campo javadoc:
/**
* Does some thing in old style.
*
* @deprecated use {@link #new()} instead.
*/
@Deprecated
public void old() {
// ...
}
reason
con un valor predeterminado de ""
no podría haber sido perjudicial
@deprecated
mensaje en el comentario pudiera agregarse a @Deprecated
(un lugar para arreglarlos a todos) ...
Utilice tanto la @Deprecated
anotación como la@deprecated
etiqueta JavaDoc.
los @deprecated
etiqueta JavaDoc se utiliza con fines de documentación.
La @Deprecated
anotación indica al compilador que el método está en desuso. Esto es lo que dice en el documento Sun / Oracles sobre el tema:
Usar la
@Deprecated
anotación para desaprobar una clase, método o campo asegura que todos los compiladores emitirán advertencias cuando el código use ese elemento del programa. Por el contrario, no hay garantía de que todos los compiladores siempre emitan advertencias basadas en la@deprecated
etiqueta Javadoc, aunque los compiladores de Sun actualmente lo hacen. Otros compiladores no pueden emitir tales advertencias. Por lo tanto, usar la@Deprecated
anotación para generar advertencias es más portátil que confiar en la@deprecated
etiqueta Javadoc.
Puede encontrar el documento completo en Cómo y cuándo desaprobar las API
@deprecated
etiqueta javadoc (en Java 4-), el compilador marcó el método (clase, campo) como obsoleto y los IDE mostraron advertencias, incluso cuando no había fuente disponible.
ya que faltaban algunas explicaciones menores
Use @Deprecated
anotaciones en el método como este
/**
* @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>
*
*/
@Deprecated
public void setBaseprice(int basePrice) {
}
<br/>
{@link #setPurchasePrice()}
Hay dos cosas que puedes hacer:
@Deprecated
anotación al método y@deprecated
etiqueta al javadoc del método¡Deberías hacer las dos cosas !
Citando la documentación de Java sobre este tema:
Comenzando con J2SE 5.0, desaprueba una clase, método o campo utilizando la anotación @Deprecated. Además, puede usar la etiqueta @doc obsoleta de Javadoc para indicar a los desarrolladores qué usar en su lugar.
El uso de la anotación hace que el compilador de Java genere advertencias cuando se utiliza la clase, el método o el campo en desuso. El compilador suprime las advertencias de desaprobación si una unidad de compilación desaprobada usa una clase, un método o un campo desaprobados. Esto le permite crear API heredadas sin generar advertencias.
Se recomienda encarecidamente utilizar la etiqueta Javadoc @deprecated con comentarios apropiados que expliquen cómo utilizar la nueva API. Esto garantiza que los desarrolladores tendrán una ruta de migración viable desde la antigua API a la nueva API