有人知道在调试时是否可以保存对象的状态吗?我想比较一个对象在两个不同执行周期中的状态。
**附加问题:**任何有编写IntelliJ插件经验的人?IntelliJ SDK允许在调试模式下访问调试值吗?从IntelliJ缓存中读取它们并将它们写入磁盘?
wsxa1bj11#
作为一个非常简单的解决方案,您可以对 Variables 或 Watches 视图中的对象使用 Fully Expand Tree Node 操作。默认情况下,此操作绑定到 * Numbad**键(*),并打开整个对象树。然后您可以使用shift选择打开的对象树的所有元素,并将它们复制到剪贴板。
iih3973s2#
要扩展Josep的答案,最好的办法是将Google's Gson library导入到项目中并运行:
Gson gson = new Gson(); gson.toJson(yourObject);
然后从结果中复制值。下面是IntelliJ IDEA上的一个示例:
vddsk6oq3#
我保存对象状态的最佳解决方案是,当对象处于所需状态时,使用Evaluate工具,并使用Gson库将其转换为JSON,然后在测试设置时,我将JSON复制为String,并再次将其转换为Java对象。可能有点粗糙,但对于非常大且复杂的对象,它可以为您节省大量时间。
i1icjdpr4#
在IntelliJ 2016中,当您在调试时右击"变量"窗口中的变量时,您可以选择"查看文本"
798qvoo85#
如果您可以保存每个对象(您不能选择要保存哪些对象),那么有一个插件可以做到这一点:https://plugins.jetbrains.com/plugin/14974-breakpoint-exporter-importer-with-variable-information
vohkndzv6#
添加下面的示例代码,它将以json形式显示数据:
ObjectMapper mapper = new ObjectMapper(); try { String sample = mapper.writeValueAsString(Your object); System.out.println(sample); } catch (JsonProcessingException e) { e.printStackTrace(); }
6条答案
按热度按时间wsxa1bj11#
作为一个非常简单的解决方案,您可以对 Variables 或 Watches 视图中的对象使用 Fully Expand Tree Node 操作。默认情况下,此操作绑定到 * Numbad**键(*),并打开整个对象树。然后您可以使用shift选择打开的对象树的所有元素,并将它们复制到剪贴板。
iih3973s2#
要扩展Josep的答案,最好的办法是将Google's Gson library导入到项目中并运行:
然后从结果中复制值。
下面是IntelliJ IDEA上的一个示例:
vddsk6oq3#
我保存对象状态的最佳解决方案是,当对象处于所需状态时,使用Evaluate工具,并使用Gson库将其转换为JSON,然后在测试设置时,我将JSON复制为String,并再次将其转换为Java对象。可能有点粗糙,但对于非常大且复杂的对象,它可以为您节省大量时间。
i1icjdpr4#
在IntelliJ 2016中,当您在调试时右击"变量"窗口中的变量时,您可以选择"查看文本"
798qvoo85#
如果您可以保存每个对象(您不能选择要保存哪些对象),那么有一个插件可以做到这一点:https://plugins.jetbrains.com/plugin/14974-breakpoint-exporter-importer-with-variable-information
vohkndzv6#
添加下面的示例代码,它将以json形式显示数据: