[Java 5.0] Des/Activar los warnings con javac

3063 vistas

El compilador Java del JDK 5.0 trae su lote de nuevos warnings. Un warning es un mensaje dado en la compilación para indicar un problema potencial, pero que no impide la compilación. No obstante, es aconsejable corregirlos ya que pueden dar problemas en ejecución.

No obstante, por defecto no se muestran todos estos warnings, sino sólo algunos. Por ejemplo:



java
  1. Note: Main.java uses or overrides a deprecated API.
  2. Note: Recompile with -Xlint:deprecation for details.



Este mensaje indica el prolema potencial (en este caso el uso de un método deprecated) asà como qué hacer para obtener más detalles sobre el problema (recompilar con la opción -Xlint:deprecation).

JDK 5.0 ha introducido una nueva opción en el compilador javac para gestionar el mostrado o no de los warnings: la opción -Xlint. Si la usamos sola podemos desactivar todos los warnings del compilador:



java
  1. javac -Xlint MaClasse.java



La opción -Xlint acepta los prámetros siguientes:

[table]
  [tr]
    [tdc]Valor[/tdc]
    [tdc]Descripción[/tdc]
  [/tr]
  [tr]
    [tdc]all[/tdc]
    [tdl]Activa todos los warnings[/tdl]
  [/tr]
  [tr]
    [tdc]deprecation[/tdc]
    [tdl]Activa los warnings referentes a los elementos deprecated. Tiene el mismo comportamiento que la opción -deprecation que ya existe en versiones anteriores.
(Ver [iurl=90&all=0&fs=1064#1070]deprecation : "uses or overrides a deprecated API"[/iurl])[/tdl]
  [/tr]
  [tr]
    [tdc]unchecked[/tdc]
    [tdl]Activa los warnings relativos al uso de tipos parametrizados.
(Ver [iurl=90&all=0&fs=1064#1069]unchecked : "uses unchecked or unsafe operations")[/iurl].[/tdl]
  [/tr]
  [tr]
    [tdc]fallthrough[/tdc]
    [tdl]Activa la verificación de los switch por el compilador.
(Ver [iurl=90&all=0&fs=1064#1068]fallthrough : "possible fall-through into case"[/iurl]).[/tdl]
  [/tr]
  [tr]
    [tdc]path[/tdc]
    [tdl]Activa la verificación de las rutas.
(Ver [iurl=90&all=0&fs=1064#1067]path : "bad path element"[/iurl]).[/tdl]
  [/tr]
  [tr]
    [tdc]serial[/tdc]
    [tdl]Activa todos los warnings relacionados con la Serialization (serialVersionUID).
(Ver [iurl=90&all=0&fs=1064#1066]serial : "serializable class Main has no definition of serialVersionUID"[/iurl]).[/tdl]
  [/tr]
  [tr]
    [tdc]finally[/tdc]
    [tdl]Activa todos los warnings relacionados con los bloques finally incorrectos.
(Ver [iurl=90&all=0&fs=1064#1065]finally : "finally clause cannot complete normally"[/iurl]).[/tdl]
  [/tr]
[/table]

Podemos usar varios valores al mismo tiempo separados por comas. Anteponiendo a los valores el signo menos (-) desactivamos el warning asociado. Veamos algunos ejemplo:

Mostrar todos los warnings:


dos
  1. javac -Xlint *.java
  2. javac -Xlint:all *.java



Mostrar warnings deprecated y unchecked


dos
  1. javac -Xlint:deprecation,unchecked



Mostrar todos los warnings menos unchecked


dos
  1. javac -Xlint:all,-unchecked