Me gustaría hacer que uno de mis métodos quede “obsoleto” = no se use más.
Pero aún así me gustaría tenerlo en mi API. Solo quiero mostrar una “advertencia” a cualquiera que use ese método.
¿Cómo puedo lograr eso?
pavel janicek
Me gustaría hacer que uno de mis métodos quede “obsoleto” = no se use más.
Pero aún así me gustaría tenerlo en mi API. Solo quiero mostrar una “advertencia” a cualquiera que use ese método.
¿Cómo puedo lograr eso?
vladimir ivanov
Usar @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() {
// ...
}
¿Cómo se vincula una biblioteca externa? por ejemplo: com.hello.api.PublicController#nuevo
– Faizán Kazi
7 de abril de 2017 a las 5:57
¡@LinuxLars completamente de acuerdo! Java 9 agregó un par de atributos para comenzar a tomar en serio la desaprobación, pero agregó otro atributo reason
con un valor predeterminado de ""
no podría haber lastimado
– preguntas
31 de enero de 2018 a las 8:48
me gustaría el @deprecated
el mensaje en el comentario podría agregarse a @Deprecated
(un lugar para arreglarlos a todos)…
– U. Windl
16 de mayo de 2018 a las 12:12
¿Qué hacer con un escenario de interfaz/implementación? ¿Establecer el método en desuso también en la interfaz de Java?
– JBStonehenge
3 de marzo a las 12:30
ShaMan-H_Fel
usa ambos @Deprecated
anotación y la @deprecated
Etiqueta JavaDoc.
los @deprecated
La etiqueta JavaDoc se utiliza con fines de documentación.
los @Deprecated
anotación indica al compilador que el método está en desuso. Esto es lo que dice en el documento de Sun/Oracles sobre el tema:
Utilizando el
@Deprecated
La anotación para desaprobar una clase, un método o un campo garantiza que todos los compiladores emitan 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 el@deprecated
Etiqueta Javadoc, aunque los compiladores de Sun actualmente lo hacen. Es posible que otros compiladores no emitan tales advertencias. Así, usando el@Deprecated
La anotación para generar advertencias es más portátil que confiar en el@deprecated
Etiqueta Javadoc.
Puede encontrar el documento completo en Cómo y cuándo desaprobar las API
No del todo cierto. Ambas cosas javadoc y la anotación dicen que el método del compilador está en desuso
– bohemio
♦
27 de enero de 2012 a las 14:44
@Bohemian En realidad, eso no es del todo cierto. La anotación se define en la especificación del lenguaje Java, sección 9.6.1.6 (java.sun.com/docs/books/jls/tercera_edición/html/…), mientras que la etiqueta javadoc no lo es. Entonces la anotación es parte del lenguaje. Si decide escribir su propio compilador Java, puede ignorar la etiqueta javadoc, pero debe reconocer la anotación.
– ShaMan-H_Fel
27 de enero de 2012 a las 15:05
@ShaMan-H_Fel Creo que el modelo javadoc también funciona. Porque era la única opción antes de Java 5 y funcionó. Cuando marcó un método con @deprecated
javadoc (en Java 4-), el compilador marcó el método (clase, campo) como obsoleto y los IDE mostraron advertencias, incluso cuando no había ninguna fuente disponible.
– Amir Pashazadeh
16 de septiembre de 2017 a las 13:26
azerafati
ya que faltaban algunas explicaciones menores
Usar @Deprecated
anotación 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()}
¿No debería ser
, en lugar de ?
– argh1969
29/10/2018 a las 18:00
@ argh1969, ¡verdad! No recuerdo de dónde saqué la plantilla en ese entonces. Pero puedo confirmar que ambas versiones funcionan. Aunque estoy editando a favor de los estándares.
– azerafati
24 de noviembre de 2018 a las 4:36
bohemio
Hay dos cosas que puedes hacer:
@Deprecated
anotación al método, y@deprecated
etiqueta al javadoc del métodoDebería Haz ambos!
citando el documentación java en esta asignatura:
A partir de J2SE 5.0, se descarta una clase, un método o un campo mediante la anotación @Deprecated. Además, puede usar la etiqueta @deprecated Javadoc para decirles a los desarrolladores qué usar en su lugar.
El uso de la anotación hace que el compilador de Java genere advertencias cuando se usa la clase, el método o el campo en desuso. El compilador suprime las advertencias de obsolescencia si una unidad de compilación obsoleta usa una clase, un método o un campo obsoletos. Esto le permite crear API heredadas sin generar advertencias.
Se recomienda encarecidamente utilizar la etiqueta Javadoc @deprecated con los comentarios correspondientes que expliquen cómo utilizar la nueva API. Esto garantiza que los desarrolladores tendrán una ruta de migración viable desde la API anterior a la nueva API.
amit
Utilizar el anotación @Deprecated
para su método, y también debe mencionarlo en sus javadocs.
El enlace ahora está roto
– Yeti99
11 de abril de 2018 a las 21:03
jham
Echa un vistazo a la @Deprecated
anotación.
El enlace ahora está roto
– Yeti99
11 de abril de 2018 a las 21:03
¿@Deprecrated no es una opción para usted?
– templatetypedef
27 de enero de 2012 a las 10:24
Lo es, pero no lo sabía … por eso hago la pregunta 🙂
– Pavel Janicek
27 de enero de 2012 a las 10:26
Ver docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/…
– Raedwald
31 de enero de 2012 a las 13:39
¡Los comentarios no son el lugar para las respuestas!
– Mattumotu
25 de enero de 2015 a las 11:35