Newsgroup: it.comp.java
Titolo: Deprecated API

Salve a tutti.
Stò studiando per bene il java e mi sono imbattuto in alcuni API che
vengono "sconsigliate".
ciao.java use or overrides a deprecated API:
java.io.DataInputStream.readLine();
java.awt.List.addItem();
java.awt.Component.action();
java.awt.Component.handleEvent();
java.awt.List.isSelected();
quale posso utilizzare al loro posto?
Un'API "sconsigliata" è dannosa per la sicurezza del sistema oppure
rischia di essere eliminata nelle nuove versioni del linguaggio?

Gioacchino ha scritto:

se guardi nella documentazione ufficiale dovresti trovare ache l'API che 
ha sostituito quella deprecata



Basta leggere la documentazione.
Ad esempio:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/DataInputStream.html
Come vedrai nella descrizione del metodo readLine c'e' scritto appunto che
e' deprecated. Normalmente, come in questo caso, c'e' anche scritto
cos'altro bisognerebbe usare.
Per il significato di deprecated, anche in questo caso basta leggere la
documentazione:
http://java.sun.com/j2se/1.4.2/docs/api/help-doc.html
...ma il motivo della "deprecazione" dipende dal singolo metodo/classe/ecc.
Ad esempio per il precedente readLine, il motivo e' che, dato che fa parte
di un InputStream, non e' in grado di gestire correttamente la
trasformazione da byte a char.
Per altri casi...dipende. Molto spesso si tratta solo di un cambiamento
del nome del metodo, per uniformarsi, ad esempio, alle convenzioni per i
JavaBean. In ogni caso non bisognerebbe usare qualcosa di deprecated,
perche' non c'e' garanzia che in una versione successiva del JDK ci sia
ancora.
-- 
Lucio Benfante
Java User Group Padova: 
http://www.jugpadova.it
Brainbench MVP for Java 1: 
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

 rischia di essere eliminata nelle nuove versioni del linguaggio?
Rischia di essere eliminata nelle successive versioni di java, ma anche 
di non essere correttamente supportata nella versione corrente. Un api 
può essere deprecata per varie ragioni, per una semplice modifica al 
design oppure perchè quell'api faceva qualcosa di sbagliato. In 
quest'ultimo caso la potresti trovare già con un funzionamento diverso 
rispetto a prima, come accade ad esempio su alcune servlet API.
E' stupido usare mentre si programma api già deprecate nel java che si 
sta usando, di solito è un problema che è logico aspettarsi in un 
passaggio di versione.

consultando la documentazione avresti sempre avuto una risposta più veloce.
avendo la documentazione a portata di mano sicuramente...
... non avendola (fino a ieri) era meglio chiedere nel newsgroup...
:-)

 :-)
Beh, come vedi è online e oltretutto mettendo il solo nome della classe 
desiderata su google la si rintraccia facilmente.
Senza contare che, se uno vuole programmare o anche solo smanettare, 
procurarsi la documentazione e tenerla a portata di mano è una cosa 
abbastanza ovvia. Chiedendo sui ng ottieni dei suggerimenti, ma anche se 
sembra molto produttivo chiederli a forza di "aiutini" non si realizza 
nulla; anzi, ponendo la domanda sbagliata si ottiene un aiuto a sbagliare.
Senza polemica, sono anch'essi dei suggerimenti.