Verstehen der Objekt-Array-Typkodierung
Wenn Sie ein Objekt aus einem Funktionsaufruf abrufen und seine Zeichenfolgendarstellung drucken, stoßen Sie möglicherweise auf eine rätselhafte Notation wie „[Ljava.lang.Object;“. Dieser rätselhafte Ausdruck stellt den Klassentyp des Objekts dar, aber wie entschlüsseln wir sein kryptisches Format?
Das Klassentyp-Codierungsschema wird in Class.getName() elegant detailliert beschrieben: Für Referenztypen (ausgenommen Arrays) gilt das Binärname wird zurückgegeben. Primitive Typen und void werden ihren Java-Schlüsselwörtern zugewiesen. Für Arrays nimmt ihre Codierung jedoch eine eindeutige Form an.
Array-Codierung: Aufschlüsselung von [ Ljava.lang.Object; ]
"Ljava.lang.Object;" ist die Notation für die Java-Klasse, die ein Array von Objekten darstellt, auch bekannt als Object[].class. Das Benennungsmuster folgt den folgenden Regeln:
Verstehen der Kodierungsnotation
Das Format ist wie folgt:
Elementtypkodierung
boolescher Wert Z
Byte B
char C
double D
float F
int I
long J
short S
class or interface Lclassname;
Beispieldekodierungen
Betrachten Sie zur Veranschaulichung diese Beispiele:
Warum Arrays toString() überschreiben
Entgegen der Erwartung weicht die toString()-Methode für Arrays von der Implementierung der Object-Klasse ab. Sie gibt einen String im oben genannten Format zurück, da Arrays diese Methode nicht überschreiben. Daher wird die von Object geerbte Methode aufgerufen, die wie folgt angegeben ist:
String.class gibt einen String im Format zurück: getClass().getName() '@' Integer.toHexString(hashCode())
Alternative Array-String-Darstellung
Die Klasse java.util.Arrays bietet benutzerfreundlichere String-Darstellungen für Arrays:
Zusätzliche nützliche Ressourcen
Das obige ist der detaillierte Inhalt vonWas bedeutet „[Ljava.lang.Object;' bei der Java-Array-Typkodierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!