2012-09-24 9 views
6

ho bisogno di sapere come risolvere queste note di errore:ricompilare con -Xlint: disapprovazione per i dettagli

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

Ecco il mio codice:

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"); 
     } 
    } 
} 

risposta

1

Come dice il messaggio, è necessario compilare con -Xlint comando di commutazione linea per il comando javac come segue:

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

Come stai compilando il codice, da riga di comando o da l'ambiente di sviluppo di jGrasp? – Vikdor

+0

Apre una nuova java in jGrasp e inizio a lavorare il mio codice. Quindi premo il pulsante del file di compilazione per verificare la presenza di errori. –

+0

Non sai come abilitare gli avvisi di 'deprecation' in jGrasp.Potrebbe essere necessario consultare il manuale di jGrasp per questo. Se fosse eclissi, andresti su Windows -> Preferenze -> Java -> Compilatore -> Errori/Avvisi -> API deprecata e limitata e imposterai il livello di gravità su avviso/errore. – Vikdor

5

E 'un avvertimento. Stai utilizzando una chiamata di funzione deprecata o un oggetto. È possibile ricompilare in questo modo per scoprire dove è che si verificano:

javac -Xlint:deprecation Summer.java 

In generale, si tratta di una cattiva idea di utilizzare le librerie deprecate. Potrebbero andare via nella prossima versione.

+0

Fornisce un messaggio di avviso, ma esegue correttamente il programma. Grazie –

-1

Questi non sono errori. Solo avvertimenti. Quelli non influenzeranno il tuo programma. Tuttavia, poiché stai utilizzando la classe di utilizzo obsoleta Data in futuro, potrebbe influire sul tuo programma.

E 'meglio utilizzare java.util.Calendar invece di java.util.Date questo fornisce stessa funzionalità Data e someextra funzionalità anche

6

Questo non è un errore, è un messaggio di avviso.

Il programma verrà eseguito come l'hai scritto.

il motivo per cui il compilatore ti sta dando questo avviso è perché hai usato una chiamata di funzione deprecata.

da ricompilazione con -Xlint, compilatore significa per informarvi che è necessario ricompilare il programma come

javac -Xlint abc.java 

se non è così, il compilatore vi dirà che metodi sono obsoleti e quindi si può rimuovere quelli.

"fondo se qualche metodo è deprecato, un'attuazione migliore è fornito" in modo che il compilatore si apre un messaggio di avviso che informa che qualcosa di meglio è stato fornito per quello che si sta cercando di usare"

PS: è sempre consigliabile non usare metodi obsoleti.

Speranza che aiuta :-)

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

per questo errore. ma la sua realtà un avvertimento per perdere il try {} catch() {} bloccare si può usare per vedere il codice effettuato b y scrivendo la seguente dichiarazione

javac -Xlint:unchecked filename.java 

mostrerà l'incontrollato tutte le eccezioni che devono catturare attraverso l'utente definire o sistema di definire codice di eccezione

Problemi correlati