在IntelliJ调试中保存对象的状态?

Mor*_*lst 23 java debugging intellij-idea intellij-plugin

有人知道在调试时是否可以保存对象的状态?

我想在两个不同的执行周期中比较一个对象的状态.

奖金问题:任何有写IntelliJ插件经验的人?IntelliJ SDK是否允许在调试模式下访问调试值?从IntelliJ缓存中读取它们并将它们写入磁盘?

And*_*ine 19

作为一个非常简单的解决方案,您可以对" 变量"或" 监视"视图中的对象使用" 完全展开树节点"操作.默认情况下,此操作绑定到Numpad* key(),并打开整个对象树.然后使用shift选择已打开对象树的所有元素,并将它们复制到剪贴板.*

  • 您还可以使用ctrl/cmd-A选择所有变量,然后复制它们. (2认同)

maa*_*aaw 13

要扩展 Josep 的答案,最好的办法是将Google 的 Gson 库导入您的项目并运行:

Gson gson = new Gson();
gson.toJson(yourObject);
Run Code Online (Sandbox Code Playgroud)

然后从结果中复制值。

这是一个关于 IntelliJ IDEA 的例子:

例子

  • Gson().toJson(repos); (2认同)

小智 7

我保存对象状态的最佳解决方法是在对象处于所需状态并使用 Gson 库将其转换为 JSON 时使用 Evaluate 工具,然后在测试设置中将 JSON 复制为字符串并将其转换为再次是Java对象。可能有点粗鲁,但对于非常大且复杂的对象,它可以为您节省大量时间。

  • 绝对比复制为纯文本更好。我希望这是调试器中的一个选项。 (3认同)