【发布时间】:2014-11-10 21:40:31
【问题描述】:
所以我拥有所有这些字节[],它们的编码可能是许多不同格式中的一种,具体取决于我当前调试的位置。我希望能够将字节数组的投影列表组合在一起。我正在使用 IntelliJ 的 Data Type Renderers 视图,将渲染器应用于类型 byte[],我主要关心的是“表达式列表”框。
所以我已经看到了如何使用表达式new String(this) 渲染节点,但是这在下面的表达式列表视图中不起作用。最终我想做new String(this, "UTF16")之类的表达式(或转换为十六进制或base64或w/e)但this在表达式列表框中似乎不是一个字节[] - 事实上,当我尝试像(byte[])this 这样的类型转换结果显示Inconvertible types; cannot cast '_Dummy_.__Array__≤T≥' to 'byte[]'(java.lang.Byte[] 的行为相同)。这真是奇怪的行为,在一个地方它是一个字节[],而在另一个地方它是一些不透明的内部类型。
起作用的只是显示字段 - 即,像 this.length 这样的表达式可以按预期工作。此外,像 this 这样的表达式只是重新渲染节点,声称它的类型是 byte[] 并且它的对象 id 与原始的 id 相同。
【问题讨论】:
-
这几乎听起来像 Idea 正在尝试自动装箱并且失败了。如果您尝试手动装箱 java.lang.Byte[] 中的原语并重新评估表达式,您能否补充一下问题?
-
添加了一些细节。没有从 Dummy.__Array__
到我知道的任何 java.lang 类型的转换:-)。
标签: java intellij-idea intellij-13