Java int til String - Integer.toString(i) vs new Integer(i).toString()
Noen ganger forvirrer java meg.
Jeg har en enorm mengde int initialiseringer å gjøre.
Hva er den virkelige forskjellen?
Heltal.tilStreng(i)
nyt Heltall(i).tilStreng()
419
3
Integer.toString
kaller den statiske metoden i klassenInteger
. Den trenger ikke en forekomst avInteger
.Hvis du kaller
new Integer(i)
, oppretter du en instans av typenInteger
, som er et fullstendig Java-objekt som innkapsler verdien av din int. Deretter kaller dutoString
-metoden på den for å be den om å returnere en strengrepresentasjon av seg selv.Hvis alt du vil er å skrive ut en
int
, vil du bruke den første fordi den er lettere, raskere og ikke bruker ekstra minne (bortsett fra den returnerte strengen).Hvis du vil ha et objekt som representerer en heltallsverdi-for å sette det inne i en samling for eksempel-du'd bruke den andre, siden det gir deg et fullverdig objekt for å gjøre alle slags ting som du ikke kan gjøre med en bare
int
.new Integer(i).toString()
oppretter først et (redundant) omslagsobjekt rundt
i(som selv kan være et omslagsobjekt
Integer`).Integer.toString(i)
er å foretrekke fordi den ikke oppretter noen unødvendige objekter.new Integer(i).toString();
Denne setningen oppretter objektet Integer og kaller deretter metodene
toString(i)
for å returnere String-representasjonen av Integer's verdi.Integer.toString(i)';
Det returnerer String-objektet som representerer det spesifikke int (heltallet), men her er
toString(int)
enstatisk
metode.Sammendraget er at den i første tilfelle returnerer objektets strengrepresentasjon, mens den i andre tilfelle returnerer strengrepresentasjonen av heltallet.