PDA

Visualizza la versione completa : [JAVA] maledetto chi depreca!


ale500
17-10-2005, 14:12
Salve a tutti,
ho un serio problema con le Date di java.

Come voi tutti saprete ormai quasi tutti i metodi ed i costruttori della classe java.util.Date e quindi della classe derivata java.sql.Date sono deprecati.

Questo vuol dire che oltre a non esser certo che i metodi deprecati funzionino, ogni volta che tento di richiamarli l'Eclipse mi da (giustamente un warning) ed addirittura dalla versione 3.1 me li marca con un carattere barrato.

Allora mi chiedo io, non esiste una classe con un bellissimo metodo (e magari anche un costruttore) setDate(java.util.Date d) dove è possibile settare direttamente una Data come parametro senza ogni volta utilizzare ad esempio il costruttore del GregorianCalendar new GregorianCalendar(int year,int month,int day) passandogli date.getYear(), date.getMonth(), date.getDate() con il risultato di avere 3 maledetti warning (ed il nome dee metodi barrati)???

Grazie dell'aiuto...

PS
Avete notato quanto è brutta la nuova versione della documentazione di Java??? A mio parere quella vecchia (e con vecchia intendo 1.4.bla bla bla) era nettamente + chiara :confused:

Andrea1979
17-10-2005, 14:24
che problemi hai ad usare Calendar? Ha un metodo set apposta per sistemare tutti i campi di una data in un colpo... poi c'è pure setTime(Date d) che forse meglio risponde alle tue richieste.

Per quanto riguarda la documentazione java... se ti riferisci alle API ha sempre fatto, a mio modesto avviso, SCHIFO. Period. Poi, se si scartabella meglio nel sito si trovano tutorial sui più diversi argomenti... diciamo che a leggersi le API hai un giovamento solo se sai che ti serve, ma non ti ricordi la sintassi... ma imparare da lì è una bestemmia :oVVoVe:

Lucked
17-10-2005, 16:45
si è vero puo usare il metodo: void setTime(Date time).
fai attenzione che se usi la new nei mesi, lo 0 stà per gennaio.

ma perchè esiste Date, se poi esiste GregorianCalendar?...

Andrea1979
17-10-2005, 16:53
Date esiste da java 1.0... per retro-compatibilità è ancora lì... chiaramente tutti i nuovi programmi dovrebbero essere scritti evitando accuratamente tutte le classi deprecate.

stai_tranquillo
17-10-2005, 17:06
Originariamente inviato da Andrea1979
che problemi hai ad usare Calendar? Ha un metodo set apposta per sistemare tutti i campi di una data in un colpo... poi c'è pure setTime(Date d) che forse meglio risponde alle tue richieste.

Per quanto riguarda la documentazione java... se ti riferisci alle API ha sempre fatto, a mio modesto avviso, SCHIFO. Period. Poi, se si scartabella meglio nel sito si trovano tutorial sui più diversi argomenti... diciamo che a leggersi le API hai un giovamento solo se sai che ti serve, ma non ti ricordi la sintassi... ma imparare da lì è una bestemmia :oVVoVe:

[ot]
non condivido, imho è un eccellente sistema di documentazione, e personalmente ho imparato quasi tutto quello che so dalle javadoc delle API (lette e rilette sin dalla 1.2) e spulciando nei sorgenti delle jdk.

@ale500:

comunque, tornando in tema, è assolutamente "safe" utilizzare i metodi della classe Date, anche se deprecati. La deprecazione di un metodo è semplicemente un contrassegno a livello di "commento" volto ad indicare che esistono metodi migliori, più recenti, o ceh semplicemente non c'è più bisogno di chiamare quei metodi. I metodi deprecati, almeno nelle classi standard java, non verranno mai eliminati.
Tuttavia, proprio perchè sono deprecati, vanno preferibilmente sostituiti con le chiamate a classi e metodi alternativi suggeriti.. come per esempio Calendar e tutte le sue estensioni per sostituire Date....
Per quanto riguarda i warnings di eclipse, se avessi letto il manuale utente, o almeno avessi spulciato tra le opzioni di configurazione avresti sicuramente notato che è possibile configurare i flags da passare al compilatore, e con essi il livello di avviso per la maggior parte dei casi d'uso.

Dai un'occhiata alle preferences..

Andrea1979
17-10-2005, 17:14
Originariamente inviato da stai_tranquillo
[ot]
personalmente ho imparato quasi tutto quello che so dalle javadoc delle API (lette e rilette sin dalla 1.2) e spulciando nei sorgenti delle jdk.

il mondo è bello perché vario: considero le API di java come un foglietto illustrativo di un farmaco, in cui, invece delle spiegazioni, hai solo le formule chimiche.

stai_tranquillo
17-10-2005, 17:16
Originariamente inviato da Andrea1979
il mondo è bello perché vario: considero le API di java come un foglietto illustrativo di un farmaco, in cui, invece delle spiegazioni, hai solo le formule chimiche.

hehe bella metafora :D

certo, non sono chiari per un novizio quanto un libretto della apogeo.. ma senza dubbio sono il documento che scientificamente contiene TUTTO quello che è necessario sapere. Basta capire bene l'inglese e armarsi di pazienza..

Andrea1979
17-10-2005, 17:20
...infatti per quello dicevo che fa schifo e che per imparare è più pratico ed efficace del codice commentato (come nelle sezioni di learning). Poi chiaro che al farmacista esperto dire aspirina, acido acetilsalicilico o C9H8O4 non lo sposta di una virgola... ma prima, facci diventare farmacisti ed esperti :maLOL: :unz:

Loading