Also habe ich alle diese Byte [], und ihre Codierung könnte eines von vielen verschiedenen Formaten sein, abhängig davon, wo ich gerade debuggen. Ich möchte in der Lage sein, eine Liste von Projektionen für das Byte-Array zusammen zu werfen. Ich verwende die IntelliJ-Datentyp-Renderer-Ansicht, wende den Renderer an den Typ byte [] an und befasse mich hauptsächlich mit dem Feld Liste der Ausdrücke.So verwenden Sie die Datentyp-Renderer-Liste für Byte [] in IntelliJ
Also ich habe gesehen, wie Sie den Knoten mit dem Ausdruck new String(this)
rendern können, aber das funktioniert nicht in der Liste der Ausdrücke Ansicht unten. Schließlich möchte ich Ausdrücke wie new String(this, "UTF16")
machen (oder Konvertierungen zu hex oder base64 oder w/e machen) aber this
scheint nicht ein Byte [] in der Liste der Ausdrücke zu sein - in der Tat, wenn ich versuche, wie (byte[])this
tippen Ergebnis sagt Inconvertible types; cannot cast '_Dummy_.__Array__≤T≥' to 'byte[]'
(dasselbe Verhalten für java.lang.Byte []). Es ist wirklich merkwürdiges Verhalten, dass es an einem Ort ein Byte [] ist und in einem anderen es ein undurchsichtiger interner Typ ist.
Woran zeigt Arbeit einfach die Felder an - d. H. Ein Ausdruck wie this.length
funktioniert wie erwartet. Außerdem gibt ein Ausdruck wie this
den Knoten einfach neu und behauptet, dass sein Typ Byte [] ist und seine Objekt-ID ist die gleiche wie die ID des Originals.
Es klingt fast wie Idea den Typ Auto Box versucht und versagt. Können Sie der Frage hinzufügen, was passiert, wenn Sie versuchen, die Grundelemente in java.lang.Byte [] manuell einzubetten und den Ausdruck neu zu bewerten? –
Einige Details hinzugefügt. Es gibt keine Konvertierung von _Dummy _.__ Array__ in irgendeinen java.lang-Typ, den ich kenne :-). –
Kenny