Quindi ho tutti questi byte [] 's, e la loro codifica potrebbe essere uno dei molti formati diversi, a seconda di dove sono attualmente in fase di debug. Mi piacerebbe essere in grado di mettere insieme una lista di proiezioni per l'array di byte. Sto usando la vista Renderizzatori di tipo di dati di IntelliJ, applicando il renderer al tipo byte [], e sono principalmente interessato alla casella Lista di espressioni.Come utilizzare il tipo di dati Elenco Renderer per byte [] in IntelliJ
Quindi ho visto come è possibile eseguire il rendering del nodo con l'espressione new String(this)
, tuttavia ciò non funziona nell'elenco delle espressioni visualizzato di seguito. Alla fine voglio fare espressioni come new String(this, "UTF16")
(o effettuare conversioni in hex o base64 o w/e) ma this
non sembra essere un byte [] nella casella di elenco delle espressioni - infatti, quando provo a typecast come (byte[])this
il risultato dice Inconvertible types; cannot cast '_Dummy_.__Array__≤T≥' to 'byte[]'
(stesso comportamento per java.lang.Byte []). È un comportamento davvero strano, che in un punto è un byte [] e in un altro è un tipo interno opaco.
Ciò che funziona è semplicemente la visualizzazione dei campi, ad esempio un'espressione come this.length
funziona come previsto. Inoltre, un'espressione come this
restituisce semplicemente il nodo, affermando che il suo tipo è byte [] e il suo id oggetto è uguale all'ID originale.
Sembra quasi Idea sta cercando di box auto il tipo e sta fallendo. Puoi aggiungere alla domanda che cosa succede se provi a inscatolare manualmente le primitive in java.lang.Byte [] e a rivalutare l'espressione? –
Aggiunti alcuni dettagli. Non c'è conversione da _Dummy _.__ Array__ a qualsiasi tipo di java.lang di cui sono a conoscenza :-). –
Kenny