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

Entradas populares