Intellij中的数据类型呈现器?

Kyl*_*yle 13 java intellij-idea

最近转换为Intellij.Eclipse在调试器中有一个"Primitive Display Options"功能,它具有十六进制和ascii值的调试器渲染基元.

Eclipse调试器

因为Intellij到目前为止一切都变得轻而易举,所以我认为这将是一个不费脑子的事情,但是经过一个小时和一些非功能性的数据类型渲染后,我发现自己准备爬回到eclipse.我做了一些有效的渲染器,但仅用于对象,所以我只能得出结论,渲染器似乎不适用于原语.有人能指出我在正确的方向吗?

编辑:我已经看到了在默认渲染中选择十六进制的选项,但我希望的不仅仅是一个解决方案,每个变量需要2次点击.

And*_*ndy 18

我的解决方案是使用以下表达式提供自定义数据类型渲染器byte[]:new String(Hex.encode(this));.

只要启用了数据类型渲染器(在应用程序重新启动时维护状态等),默认情况下就可以使用此方法.如果您愿意,可以添加更精细的字符串格式(我通常有一个实用程序类可以进一步格式化,我只是从DTR表达式字段调用它).

数据类型渲染器

调试器视图

  • 这是一个非常接近的解决方案,但它仍然很笨拙(对于长数组来说几乎无法使用) (2认同)
  • Hex 类来自哪个库?在 rt.jar 中找不到 (2认同)
  • 可以使用内置 Java 类来完成:“javax.xml.bind.DatatypeConverter.printHexBinary(this);” (2认同)

Mak*_*oto 9

对于整数值(即,既不是浮点值也不是布尔值),您可以通过右键单击调试器中的基元并选择"查看为" - >"十六进制"来将它们视为十六进制值.

在此输入图像描述

默认情况下,"数据类型渲染器"功能仅适用于对象,表示基元的唯一实际方法是作为其整数值或以十六进制表示,因此我认为这是一个愉快的折衷方案.

  • 我应该提到我也发现了这个功能,但我不想每次想看到十六进制值时都要切换它.我甚至希望找到一些能够将其作为默认设置,但未能找到它. (7认同)
  • @Kyle,请参阅 **设置** > **构建、执行、部署** > **调试器** > **数据视图** > **Java** > `“显示基元的十六进制值”` (3认同)
  • 尽管我不喜欢它,手动切换这个功能似乎是我设法让它工作的唯一方法. (2认同)