Heim  >  Artikel  >  Java  >  Warum erzeugt die Methode „toString()“ von Java eine kryptische Ausgabe für Arrays?

Warum erzeugt die Methode „toString()“ von Java eine kryptische Ausgabe für Arrays?

Barbara Streisand
Barbara StreisandOriginal
2024-11-16 11:01:03343Durchsuche

Why Does Java's `toString()` Method Produce Cryptic Output for Arrays?

Javas ungewöhnliches „ToString()“ für Arrays

In Java wird erwartet, dass die toString()-Methode eine nützliche, für Menschen lesbare Methode bereitstellt String-Darstellung eines Objekts. Beim Umgang mit Arrays gilt diese Erwartung jedoch nicht.

Die Besonderheit von Arrays ToString()

Bedenken Sie den folgenden Code:

char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());

Anstatt die erwartete Zeichenfolge „abcdef“ zurückzugeben, gibt dieser Code Kauderwelsch wie „[C@6e1408“ oder „[C@e53108““ aus.

Dieses Verhalten entsteht, weil Javas standardmäßige toString()-Implementierung für Arrays erzeugt eine kryptische Zeichenfolge mit:

  • [ (linke Klammer)
  • C (Elementtyp, „C“ für char)
  • @ (Trennzeichen)
  • Identitäts-Hash-Code (eine eindeutige Kennung für das Array)

Die Lösung

Um eine für Menschen lesbare Zeichenfolgendarstellung eines Arrays zu erhalten, verwenden Sie die stattdessen die statische Arrays.toString()-Methode:

System.out.println(Arrays.toString(Array));

Diese Methode gibt explizit die gewünschte „abcdef“-Zeichenfolge zurück.

Die Begründung

Java Die Entscheidung, eine kryptische toString()-Implementierung für Arrays zu verwenden, wird oft als Fehler angesehen. Die Absicht hinter diesem Design bestand wahrscheinlich darin, Speicheradressen beim Debuggen zu priorisieren, aber es hat sich im täglichen Gebrauch als eher verwirrend als hilfreich erwiesen.

Das obige ist der detaillierte Inhalt vonWarum erzeugt die Methode „toString()“ von Java eine kryptische Ausgabe für Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn