Was ist das: [Ljava.lang.Objekt;?
Bekomme ich diese, wenn ich rufe toString
auf ein Objekt erhielt ich von einem Aufruf der Funktion. Ich kenne den Typ des Objekts kodiert wird, in dieser Zeichenfolge, aber ich weiß nicht, wie, es zu Lesen.
Was ist diese Art der Codierung nennt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
[Ljava.lang.Object;
ist der name fürObject[].class
, diejava.lang.Class
repräsentieren die Klasse des array vonObject
.Das Namensschema ist dokumentiert in
- Klasse.getName()
:Dir ist die Letzte auf dieser Liste. Hier sind einige Beispiele:
Der Grund, warum die
toString()
Methode auf arrays zurückString
in diesem format ist, da arrays nicht@Override
die Methode geerbt vonObject
, die wie folgt spezifiziert:Hinweis: Sie kann sich nicht auf die
toString()
von jedem beliebigen Objekt zu Folgen, die oben genannte Spezifikation, denn Sie können (und in der Regel tun)@Override
wieder etwas anderes. Die zuverlässigere Methode für die Untersuchung der Typ eines beliebigen Objekts aufzurufengetClass()
auf es (einfinal
Methode geerbt vonObject
) und dann reflektieren auf der zurückgegebenenClass
Objekt. Im Idealfall, wenn die API sollte schon so konzipiert, dass Reflexion ist nicht notwendig (siehe Effektive Java 2nd Edition, Item 53: Bevorzugen Schnittstellen zu Reflexion).Auf eine mehr "nützlich"
toString
für arraysjava.util.Arrays
bietettoString
überladungen für primitive arrays undObject[]
. Es ist auchdeepToString
, die Sie verwenden möchten, können Sie bei verschachtelten arrays.Hier sind einige Beispiele:
Gibt es auch
Arrays.equals
undArrays.deepEquals
durchführen array Geschlechter-Vergleich durch Ihre Elemente, unter vielen anderen array-bezogene utility-Methoden.Fragen