如何在IntelliJ Debugger中查看Java数组的完整内容?
如何在IntelliJ Debugger中查看Java数组的完整内容?
调试Java代码时,查看较大的byte数组会遇到内容被截断的情况,示例如下:
[106, 110, 113, 119, 97, 117, 107, 102, 104, 118, 121, 104, 118, 122, 109, 112, 121, 119, 119, 107, 111, 97, 113, 119, 107, 106, 115, 114, 122, 118, 101, 122, 118, 101, 106, 109, 113, 121, 97, 101, 97, 97, 110, 107, 106, 107, 106, 98, 117, 103, 99, 98, 110, 110, 106, 113, 106, 110, 100, 100, 120, 112, 115, 103, 105, 101, 115, 100, 100, 122, 102, 110, 118, 121, 116, 97, 120, 106, 115, 119, 101, 120, 98, 111, 109, 97, 119, 121, 116, 116, 109, 107, 97, 97, 98, 119, 106, 121, 100, 99, +900 more]
相关测试代码:
package org.example._misc; import java.nio.charset.StandardCharsets; import java.util.concurrent.ThreadLocalRandom; import org.junit.jupiter.api.Test; public class GenericTest { @Test void test() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000; i++) { sb.append(getRandomCharacter()); } String s = sb.toString(); byte[] bytes = s.getBytes(StandardCharsets.UTF_8); System.out.println(); // 断点处,用于查看bytes数组 } private char getRandomCharacter() { return (char)(ThreadLocalRandom.current().nextInt(26) + 'a'); } }
此前找到的Stack Overflow方案需要为每种数组类型定义自定义渲染器,操作过于繁琐,以下是几种更简便的解决方法:
方法1:修改调试器默认显示长度设置
- 打开IntelliJ设置(快捷键
Ctrl+Alt+S或Cmd+,) - 依次进入
Build, Execution, Deployment>Debugger>Data Views>Java - 在
Array count limit和String length limit选项中,将数值调大(比如设为10000或更大,匹配你的数组规模) - 点击
Apply保存设置,重新调试即可查看完整数组内容
方法2:用表达式求值窗口查看完整内容
- 断点暂停调试后,打开
Evaluate Expression窗口(快捷键Alt+F8) - 输入数组变量名(如
bytes),点击Evaluate - 在结果窗口中点击数组旁的展开箭头,或右键选择
View as Array,即可查看完整元素列表
方法3:调用工具类输出完整内容
在表达式窗口中执行以下代码,直接获取完整的数组字符串表示:
// 一维数组 java.util.Arrays.toString(bytes) // 多维数组 java.util.Arrays.deepToString(yourMultiDimensionalArray)
方法4:使用数组专属视图工具
在变量面板中找到目标数组,右键点击选择View > Show in Data View,会打开专门的数组查看窗口,可完整显示所有元素,还支持排序、筛选等操作
内容的提问来源于stack exchange,提问作者Powet
相关产品推荐
相关产品推荐

