在Eclipse Debug模式下复制对象的整个树

时间:2017-01-31 03:50:15

标签: java eclipse debugging

当我处于Eclipse调试模式时,我想复制一个对象的整个树。有一个简单的方法吗?

该对象有几个嵌套在其中的结构和哈希映射。因此,扩大每个条目都是繁琐的过程。

我想复制整个对象,然后再检查它。我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:1)

如果所有连接的obejct都是可序列化的,你可以将对象图序列化为文件。

我自己编写了TestUtils.serialize(Serializable, String)方法。我使用了内部apache的SerializationUtils,其中字符串是文件路径。

在断点上执行停止时使用它:

  1. 打开显示视图
  2. 使用适当的args
  3. 调用serialize()方法

    稍后您可以再次将文件反序列化为对象图(例如在单元测试中),然后检查它或提取部分或其他任何内容。

    如果不是所有对象都是可序列化的,那么你需要加强serialize()来处理这些情况,或者使用其他可以处理这些东西的通用序列化库。

    其他替代方案,但可能不足以解决您的问题:

    • string()编写一个自定义,用于调试/表达式视图,该视图仅包含真正需要的值
    • 使用像greenshot这样的截图工具