Was bedeutet „[Ljava.lang.Object;' bei der Java-Array-Typkodierung?
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:
- Der Name des Elementtyps wird zuerst angegeben.
- Bei Arrays wird dem Elementtyp ein oder mehrere „[“-Zeichen vorangestellt. Angabe der Verschachtelungstiefe.
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:
- [[[I@xxxxx: Dies stellt ein Array mit drei Verschachtelungsebenen dar, das ganze Zahlen als Elemente enthält.
- [[Ljava.lang.String;@xxxxx: Dies bezeichnet ein Array mit zwei Verschachtelungsebenen, das Arrays von Strings enthält.
- [Z@xxxxx: Dies stellt ein Array mit booleschen Elementen dar.
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:
- Arrays.toString (nums): Für primitive Arrays und Object[] wird eine durch Kommas getrennte Liste von Elementen angezeigt.
- Arrays.deepToString(table): Für mehrdimensionale Arrays wird eine verschachtelte Darstellung bereitgestellt.
Zusätzliche nützliche Ressourcen
- Arrays.equals und Arrays.deepEquals: Diese Methoden vergleichen Arrays auf elementweise Gleichheit.
- Java Arrays.equals() gibt für zweidimensionale Arrays false zurück
- Wirksam Java 2. Auflage, Punkt 53: Schnittstellen gegenüber Reflexion bevorzugen
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...
