ragazzi netbeans mi segnala vector come obsoleto..
cosa si dovrebbe utilizzare piuttosto? ArrayList?
se volessi il thread-safe?
ragazzi netbeans mi segnala vector come obsoleto..
cosa si dovrebbe utilizzare piuttosto? ArrayList?
se volessi il thread-safe?
Non so esattamente che messaggio di preciso ti ha indicato. Ma Vector, pur essendo tra le collezioni più "vecchie" non ha nulla di formalmente "deprecato".Originariamente inviato da xnavigator
ragazzi netbeans mi segnala vector come obsoleto..
Se fai un progetto nuovo e hai bisogno di una lista basata su array non thread-safe, va bene ArrayList.Originariamente inviato da xnavigator
cosa si dovrebbe utilizzare piuttosto? ArrayList?
Un ArrayList incapsulato in una lista che ti fornisce Collections.synchronizedList(). Unico difetto: hai un List che NON è un ArrayList!Originariamente inviato da xnavigator
se volessi il thread-safe?
List<XYZ> synchList = Collections.synchronizedList(new ArrayList<XYZ>());
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Sì ma probabilmente ha una sua lista configurata di classi da evidenziare come obsolete. Opzione che magari puoi pure disabilitare.Originariamente inviato da xnavigator
il messaggio è chiaramente inequivocabile![]()
Ripeto che Vector non è tecnicamente deprecato, quindi a usarlo non succede nulla di strano e nessun warning da un compilatore come il javac del JDK. Quindi la scelta e tua e ti ho indicato cosa si può fare prima.
Se poi un IDE "rompe" con "ehi .. sta collezione è obsoleta", è un altro conto. Ma lo so che è vecchia. Dipende da cosa devi fare.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
in realtà la scelta non è mia... se l'ide di chi ha creato il java ti segnala una cosa come obsolete allora è meglio evitarla al 100%Originariamente inviato da andbin
Sì ma probabilmente ha una sua lista configurata di classi da evidenziare come obsolete. Opzione che magari puoi pure disabilitare.
Ripeto che Vector non è tecnicamente deprecato, quindi a usarlo non succede nulla di strano e nessun warning da un compilatore come il javac del JDK. Quindi la scelta e tua e ti ho indicato cosa si può fare prima.
Ma ripeto che dipende da cosa devi fare. Vector è anche usato in altre parti del framework (come parametro o come tipo restituito).Originariamente inviato da xnavigator
in realtà la scelta non è mia... se l'ide di chi ha creato il java ti segnala una cosa come obsolete allora è meglio evitarla al 100%
Un esempio è il modello predefinito di JTable che è javax.swing.table.DefaultTableModel. Usa internamente i Vector e metodi/costruttori lo richiedono. Quindi: primo, come vedi anche se obsoleto è tuttora usato. Secondo: non farti "rompere" da un IDE ....
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Attualmente Netbeans si "lamenta" della System.out.println, dice che non è un buon metodo di logging. Ora posso capire il suggerimento, ma caro netbeans, se io voglio usare una System.out.println devo spiegarlo a te?Originariamente inviato da andbin
Secondo: non farti "rompere" da un IDE ....
ho disabilitato questo tipo di warning e vado tranquilla.
L'IDE dà suggerimenti, non obbliga ad usare altri metodi
E' una questione che è stata trattata anche nel forum di NetBeans: http://forums.netbeans.org/ptopic30199.htmlOriginariamente inviato da xnavigator
in realtà la scelta non è mia... se l'ide di chi ha creato il java ti segnala una cosa come obsolete allora è meglio evitarla al 100%
E la conclusione è sempre quella: Vector NON E' deprecato (quindi non va evitato). E' solo stato reso "obsoleto" dall'introduzione delle List in quanto queste sono preferibili dove non vi sia necessità di avere una lista thread-safe.
Quello dell'IDE è solo un suggerimento del tutto irrilevante, per quanto mi riguarda: non è l'IDE a decidere cosa è meglio o peggio per ciò che sto programmando.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ragazzi ma NetBeans non era mantenuto proprio da Sun?
cioè se proprio chi ha fatto il java ti suggerisce di non usarlo io lo ascolterei..
per avere l'arraylist thread safe ho letto basta fare una cosa del genere:
List list = Collections.synchronizedList(new ArrayList(...));
Continuiamo a girare attorno allo stesso problema: NetBeans suggerisce di non usarlo perchè NetBeans "pensa" (e stiamo parlando di un programma, mica di chi lo ha creato!) che non sia il caso di usarlo... ma che ne sa NetBeans se per il tuo preciso scopo va usata una lista non thread-safe piuttosto che una thread-safe? Semplice, si basa sulla statistica: il 90% delle volte è sufficiente una lista non thread-safe? Bene, lui suggerirà sempre di non usare Vector... ma lui non lo sa se io sto programmando un'applicazione che fa parte del restante 10%...Originariamente inviato da xnavigator
cioè se proprio chi ha fatto il java ti suggerisce di non usarlo io lo ascolterei..
Come ti hanno detto in tanti, sei solo tu che sai cosa è meglio per la tua applicazione.
Se è per questo, sono sempre gli stessi sviluppatori che hanno creato il tool di composizione grafica di NetBeans... ma ti garantisco che il codice scritto a mano è 100 volte più efficiente, più pulito, più manutenibile e più sensato di quello autogenerato. Non è che se lo produce NetBeans allora quello è la Verità Infusa sul codice Java, eh...
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza