További
Java int to String - Integer.toString(i) vs new Integer(i).toString()
Néha a java zavarba hoz.
Rengeteg int inicializálást kell elvégeznem.
Mi a igazi különbség?
Integer.toString(i)
new Integer(i).toString()
419
3
Az
Integer.toString
meghívja azInteger
osztály statikus módszerét. Nincs szüksége azInteger
példányára.Ha meghívod a
new Integer(i)
metódust, akkor létrehozol egyInteger
típusú példányt, ami egy teljes Java objektum, amely az int értékét foglalja magába. Ezután meghívjuk rajta atoString
metódust, hogy megkérjük, hogy adja vissza önmagának egy string reprezentációját.Ha csak egy
int
értéket akarsz kiírni, akkor az elsőt használd, mert ez könnyebb, gyorsabb és nem használ extra memóriát (a visszaadott stringtől eltekintve).Ha egy egész értéket reprezentáló objektumot akarsz - például egy gyűjteménybe helyezni -, akkor a másodikat használod, mivel ez egy teljes értékű objektumot ad, amellyel mindenféle olyan dolgot megtehetsz, amit a puszta
int
-vel nem tudsz.A
new Integer(i).toString()
először létrehoz egy (redundáns) burkoló objektumoti
körül (amely maga is lehet egy burkoló objektumInteger
).Az
Integer.toString(i)
azért előnyösebb, mert nem hoz létre felesleges objektumokat.new Integer(i).toString();
Ez az utasítás létrehozza az Integer objektumot, majd meghívja annak
toString(i)
metódusait, hogy visszaadja az Integer'értékének String reprezentációját.Integer.toString(i);
Ez visszaadja az adott int (egész szám)ot reprezentáló String objektumot, de itt a
toString(int)
egystatikus
metódus.Összefoglalva, az első esetben az objektum string reprezentációját adja vissza, míg a második esetben az egész szám string reprezentációját.