Wie ruft man die Standardimplementierung von "toString" auf?

8

Wenn toString nicht definiert ist, gibt Java den Klassennamen mit einem Hashwert aus. Wie erreicht man diese Funktionalität, wenn toString definiert ist?

%Vor%     
Suzan Cioc 05.05.2014, 08:35
quelle

3 Antworten

7

Die Standardprozedur toString verkettet nur den Klassennamen des Objekts "@" und seine hashCode in Hexadezimal.

%Vor%     
immibis 05.05.2014, 08:38
quelle
9

Die Antwort von @immibis ist korrekt, jedoch würde es nicht funktionieren, wenn Ihre Klasse die Hashcode-Methode überschreiben würde. Aber Sie können System.identityHashcode .

  

Gibt den gleichen Hash-Code für das angegebene Objekt zurück, der zurückgegeben würde   nach der Methode default hashCode (), ob das angegebene Objekt ist oder nicht   Klasse überschreibt HashCode (). Der Hash-Code für die Nullreferenz lautet   Null.

%Vor%     
Alexis C. 05.05.2014 08:55
quelle
2

Die Dokumentation zeigt, wie die Implementierung funktioniert.

  

Die toString-Methode für die Klasse Object gibt eine Zeichenfolge zurück, die aus dem Namen der Klasse besteht, deren Objekt eine Instanz ist, dem Vorzeichen @ und der unsignierten hexadezimalen Darstellung des Hash-Codes des Objekts. Mit anderen Worten, diese Methode gibt eine Zeichenkette zurück, die dem folgenden Wert entspricht:

%Vor%

Sie könnten das einfach tun oder in eine (statische?) Methode schreiben.

    
Pietu1998 05.05.2014 08:40
quelle

Tags und Links