Intellij中的java数据类型渲染器?
最近转换成Intellij。Eclipse在调试器中有一个功能,“原语显示选项”,调试器以十六进制和ascii值呈现原语
由于到目前为止,Intellij中的一切都是轻而易举的事情,所以我认为这将是一件不需要动脑筋的事情,但在一个小时之后,经过大量非功能数据类型的渲染,我发现自己已经准备好爬回eclipse。我制作了一些效果不错的渲染器,但只适用于对象,所以我只能得出结论,渲染器似乎不适用于基本体。有人能给我指一下正确的方向吗
编辑:我已经看到了在默认渲染中选择十六进制的选项,但我希望得到的不仅仅是一个每个变量都需要点击两次的解决方案
# 1 楼答案
在数据视图的选项下,有一个选项(复选框)可以永久更改所有原语,使其显示为Hex。见:
设置>构建、执行、部署>调试器>数据视图>Java>
"Show hex value for primitives"
# 2 楼答案
这与Andy的解决方案类似,但不需要定义
Hex
类(他甚至没有提到)。仅适用于Java8项目(也就是说,目前不适用于Android)必须使用以下表达式为
byte[]
(请参见Andy's answer)提供自定义数据类型呈现程序:它将格式化数据,使其“01020304 05060708 09”,即按四个字符分组,并用空格分隔。只显示前80个字节,如果有更多字节,则添加省略号
# 3 楼答案
我的解决方案是使用以下表达式为
byte[]
提供一个自定义数据类型呈现程序:new String(Hex.encode(this));
默认情况下,只要数据类型渲染器处于启用状态(在应用程序重新启动等过程中保持状态),该功能就可以工作。如果愿意,您可以添加更复杂的字符串格式(我通常有一个实用程序类,它可以进行进一步的格式设置,我只是从DTR表达式字段调用它)
# 4 楼答案
您还可以尝试DeltaHex Editor plugin使用基于IntelliJ的IDE,它可以在调试器中为字节数组显示带有典型十六进制+文本预览的窗口
插件可在设置/插件/浏览存储库/搜索DeltaHex中找到
# 5 楼答案
对于整数值(即,既不是浮点值也不是布尔值),可以通过右键单击调试器中的原语并选择“查看为”->;“十六进制”
默认情况下,数据类型渲染器功能只适用于对象,而表示原语的唯一现实方式是以其整数值或十六进制表示,因此我认为这是一个令人满意的折衷方案