2011-08-31 1 views
22

Lanciare un oggetto a un doppio e ha notato entrambi questi metodi. Vedo che parseDouble è stato in 1.2. Perché aggiungere questo metodo se essenzialmente ha le stesse funzionalità di valueOf (s)?Double.valueOf (s) vs. Double.parseDouble

+0

guarda questo: http://stackoverflow.com/q/10577610/779408 – breceivemail

risposta

31

parseDouble() restituisce un valore primitivo double. valueOf() restituisce un'istanza della classe wrapper Double. Prima che Java 5 introducesse l'autoboxing, questa era una differenza molto significativa (e molti sostengono che lo sia ancora).

+0

Bello ho appena scoperto la differenza tramite un sovraccarico. Ora per cercare Autoboxing – Will

+4

@Will: ora mi sento vecchio ... –

10

Perché non è lo stesso. valueOf() crea un oggetto Double che spesso non è necessario. parseDouble() no. Con l'autoboxing è valueOf(String) che non è più necessario, ma è quindi compatibile con le versioni precedenti.

4

Se è sufficiente il valore (primitivo) utilizzare parseDouble(String s) il costo è inferiore. valueOf(String s) restituisce una classe Double che racchiude il doppio valore primitivo.