443 Stimmen

Java int to String - Integer.toString(i) vs new Integer(i).toString()

Manchmal verwirrt mich Java.
Ich habe eine große Menge an int Initialisierungen vorzunehmen.

Was ist das real Unterschied?

  1. Integer.toString(i)
  2. new Integer(i).toString()

562voto

Jean Punkte 10475

Integer.toString ruft die statische Methode in der Klasse Integer . Er benötigt keine Instanz von Integer .

Wenn Sie anrufen new Integer(i) erstellen Sie eine Instanz des Typs Integer das ein vollständiges Java-Objekt ist, das den Wert Ihres int kapselt. Dann rufen Sie die toString Methode, um eine Zeichenkettenrepräsentation von selbst .

Wenn Sie nur ein Dokument drucken möchten int würde man die erste 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 zum Beispiel in eine Sammlung zu stellen, 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 einem bloßen int .

97voto

oksayt Punkte 4242

new Integer(i).toString() erstellt zunächst ein (redundantes) Wrapper-Objekt um i (das selbst ein Wrapper-Objekt sein kann Integer ).

Integer.toString(i) ist vorzuziehen, da es keine unnötigen Objekte erzeugt.

48voto

fhucho Punkte 33027

Eine weitere Möglichkeit ist die statische String.valueOf Methode.

String.valueOf(i)

Es fühlt sich etwas mehr Recht als Integer.toString(i) zu mir. Wenn sich der Typ von i ändert, zum Beispiel von int a double wird der Code korrekt bleiben.

14voto

Dhiraj Punkte 350
  1. new Integer(i).toString();

    Diese Anweisung erstellt das Objekt Integer und ruft dann dessen Methoden auf toString(i) a Rückgabe der String-Darstellung des Integer-Wertes .

  2. Integer.toString(i);

    Es gibt das String-Objekt zurück, das die spezifische int (Ganzzahl) repräsentiert aber hier toString(int) es un static Methode.

Zusammenfassung ist im ersten Fall gibt es die Objekte String-Darstellung, wo als im zweiten Fall gibt es die String-Darstellung der ganzen Zahl.

13voto

Jasper Holton Punkte 513

Ich empfehle auch dringend die Verwendung von

int integer = 42;
String string = integer + "";

Einfach und effektiv.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X