2012-09-24 15 views
6

Necesito saber cómo solucionar estas notas de error:recompilación con -Xlint: desaprobación para los detalles

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

Aquí está mi código:

import java.util.Calendar; 
import java.util.*; 

class Summer 
{ 
    public static void main(String[] args) 
    { 
     Date d1 = new Date(); 
     Date j21 = new Date(d1.getYear(), 6, 21); 
     if(d1.before(j21)) { 
      long diff = j21.getTime() - d1.getTime(); 
      diff = diff/(1000 * 60 * 60 * 24); 
      System.out.println("There are " + diff + " days until June 21st"); 
     } 
     else { 
      long diff = d1.getTime() - j21.getTime(); 
      diff = diff/(1000 * 60 * 60 * 24); 
      diff = 365 - diff; 
      System.out.println("There are " + diff + " days until June 21st"); 
     } 
    } 
} 

Respuesta

1

Como dice el mensaje, necesita compilar con el conmutador de línea de comandos para -Xlint el comando javac de la siguiente manera:

C:\Temp>javac -Xlint Summer.java 
Summer.java:22: warning: [deprecation] getYear() in java.util.Date has been deprecated 
     Date j21 = new Date(d1.getYear(), 6, 21); 
         ^
Summer.java:22: warning: [deprecation] Date(int,int,int) in java.util.Date has been deprecated 
     Date j21 = new Date(d1.getYear(), 6, 21); 
      ^
2 warnings 
+0

¿Cómo estás compilando el código, desde la línea de comandos o desde el entorno de desarrollo jGrasp? – Vikdor

+0

Abrí un nuevo java en jGrasp y comencé a trabajar allí. Luego presiono el botón de compilar para verificar si hay errores. –

+0

No estoy seguro de cómo habilitaría las advertencias 'deprecation' en jGrasp.Es posible que deba consultar el manual de jGrasp para esto. Si fuera un eclipse, iría a Windows -> Preferencias -> Java -> Compilador -> Errores/Advertencias -> API obsoleta y restringida, y establecería el nivel de gravedad en advertencia/error. – Vikdor

5

es una advertencia. Está utilizando una llamada a una función obsoleta o un objeto. Usted puede volver a compilar así como para averiguar dónde está ocurriendo:

javac -Xlint:deprecation Summer.java 

general, que es una mala idea utilizar las bibliotecas obsoletas. Pueden desaparecer en el próximo lanzamiento.

+0

Da un mensaje de advertencia, pero ejecuta el programa correctamente. Gracias –

-1

Esos no son errores. Solo advertencias. Esos no afectarán su programa. Pero como está usando la clase util obsoleta, la fecha en el futuro puede afectar su programa.

Es mejor utilizar java.util.Calendar en lugar de esto proporciona java.util.Date misma funcionalidad como la fecha y someextra funcionalidades también

6

Esto no es un error, es un mensaje de advertencia.

Su programa se ejecutará como lo escribió.

la razón por la cual el compilador le está dando esta advertencia es porque ha usado una llamada a función en desuso.

por recompilación con -Xlint, compilador significa para informarle que es necesario volver a compilar el programa como

javac -Xlint abc.java 

si lo hace, el compilador le dirá cuales están obsoletos por lo que podría eliminar aquellas.

"básicamente, si está en desuso algún método, se proporciona una mejor aplicación" por lo que el compilador aparece un aviso informando que algo mejor se ha proporcionado para lo que está tratando de usar"

PD: siempre es recomendable no utilizar métodos obsoletos.

espero que ayude :-)

0
Note: filename.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

de este error. pero en realidad es una advertencia para faltar el try {} catch() {} bloquear puede utilizar para ver el código efectuado b y escribir la siguiente declaración

javac -Xlint:unchecked filename.java 

se mostrará la controla todas las excepciones que deben captar a través de la definición de usuario o del sistema definir código de excepción

Cuestiones relacionadas