Notificaciones y advertencias Deprecated | Java
Cuando una API deja de estar disponible, se debe notificar a los
desarrolladores. La API obsoleta puede causar problemas en su código o, si
finalmente se elimina, causar fallas en el tiempo de ejecución.
El compilador de Java genera advertencias sobre API obsoletas. Hay opciones
para generar más información sobre las advertencias y también puede suprimir
las advertencias de obsolescencia.
Advertencias de obsolescencia del compilador
Si la desaprobación es forRemoval=false, el compilador de Java genera
una "advertencia de desaprobación ordinaria". Si la desaprobación es
forRemoval=true, el compilador genera una "advertencia de
eliminación".
Los dos tipos de advertencias están controlados por banderas -Xlint
independientes: -Xlint:deprecation y -Xlint:removal. La opción javac
-Xlint:removal está habilitada de forma predeterminada, por lo que se
muestran advertencias de eliminación.
Las advertencias también se pueden desactivar de forma independiente (tenga
en cuenta el "-" ): -Xlint:-deprecation y -Xlint:-removal.
Este es un ejemplo de una advertencia de obsolescencia normal.
$ javac src/example/DeprecationExample.java
Note: src/example/DeprecationExample.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Utilice la opción javac -Xlint:deprecation para ver qué API está obsoleta.
$ javac -Xlint:deprecation src/example/DeprecationExample.java
src/example/DeprecationExample.java:12: warning: [deprecation] getSelectedValues() in JList has been deprecated
Object[] values = jlist.getSelectedValues();
^
1 warning
A continuación, se muestra un ejemplo de una advertencia de eliminación.
public class RemovalExample {
public static void main(String[] args) {
System.runFinalizersOnExit(true);
}
}
$ javac RemovalExample.java
RemovalExample.java:3: warning: [removal] runFinalizersOnExit(boolean) in System
has been deprecated and marked for removal
System.runFinalizersOnExit(true);
^
1 warning
==========
Suprimir las advertencias de obsolescencia
Las opciones javac -Xlint controlan las advertencias para todos los archivos
compilados en una ejecución particular de javac. Es posible que haya
identificado ubicaciones específicas en el código fuente que generan
advertencias que ya no desea ver. Puede utilizar la anotación
@SuppressWarnings para
suprimir las advertencias siempre que se compile ese código. Coloque la
anotación
@SuppressWarnings en la
declaración de la clase, método, campo o variable local que usa una API
obsoleta.
Las opciones
@SuppressWarnings son:
- @SuppressWarnings ("deprecation") : suprime solo las advertencias de desaprobación ordinarias.
- @SuppressWarnings ("removal") : suprime solo las advertencias de eliminación.
- @SuppressWarnings ({"deprecation", "removal"}) : suprime ambos tipos de advertencias.
A continuación, se muestra un ejemplo de cómo suprimir una advertencia.
@SuppressWarnings("deprecation")
Object[] values = jlist.getSelectedValues();
Con la anotación @SuppressWarnings, no se emiten advertencias para esta línea, incluso si las advertencias están habilitadas en la línea de comando.
Comentarios
Publicar un comentario