Manchmal verwirrt mich Java.
Ich habe eine riesige Menge von int Initialisierungen zu machen.
Was ist der wirkliche Unterschied?
Integer.toString(i)
neue Ganzzahl(i).toString()
Integer.toString
ruft die statische Methode in der Klasse Integer
auf. Sie benötigt keine Instanz von Integer
.
Wenn Sie new Integer(i)
aufrufen, erzeugen Sie eine Instanz des Typs Integer
, die ein vollständiges Java-Objekt ist, das den Wert Ihres int kapselt. Dann rufen Sie die Methode toString
auf, um eine String-Darstellung von selbst zu erhalten.
Wenn Sie nur einen "Integer" ausgeben wollen, sollten Sie die erste Methode verwenden, weil sie leichter und schneller ist und keinen zusätzlichen Speicherplatz benötigt (abgesehen von der zurückgegebenen Zeichenkette).
Wenn Sie ein Objekt wollen, das einen Integer-Wert repräsentiert, um ihn z.B. in eine Sammlung zu packen, würden Sie die zweite Variante verwenden, da Sie damit ein vollwertiges Objekt erhalten, mit dem Sie alle möglichen Dinge tun können, die Sie mit einer bloßen int
nicht tun können.
new Integer(i).toString()
erzeugt zunächst ein (redundantes) Wrapper-Objekt um i
(das selbst ein Wrapper-Objekt Integer
sein kann).
Integer.toString(i)` ist vorzuziehen, weil es keine unnötigen Objekte erzeugt.
Diese Anweisung erstellt das Objekt Integer und ruft dann dessen Methoden toString(i)
auf, um die String-Darstellung des Integer-Werts zurückzugeben.
Es gibt das String-Objekt zurück, das den spezifischen int (Integer) repräsentiert, aber hier ist toString(int)
eine statische
Methode.
Im ersten Fall wird die String-Darstellung des Objekts zurückgegeben, während im zweiten Fall die String-Darstellung der ganzen Zahl zurückgegeben wird.