【问题标题】:Does Eclipse have an editor/viewer for java serialized files?Eclipse 是否有用于 java 序列化文件的编辑器/查看器?
【发布时间】:2011-06-20 20:36:29
【问题描述】:

我用ObjectOutputStream(FileOutputStream(File)) 序列化我的对象,并用类似的InputStreams 反序列化它们。有没有办法查看这些序列化文件的内部(最好在 eclipse 中),所以我可以检查是否编写了所有必要的属性?

编辑:谷歌搜索是否定的

【问题讨论】:

  • 我认为你的意思是相反的。
  • 谢谢,我已经更新了我的问题;)
  • 知道这很愚蠢但是...在 Eclipse 中双击(至少 Luna 和 .ser 作为扩展名)显示使用默认 toString() 的对象

标签: java eclipse serialization object viewer


【解决方案1】:

编写一些测试(使用 Eclipse 的内置 JUnit 支持)。

“查看内部”这些文件的唯一方法是使用ObjectInputStream(FileInputStream(File)),除非您是字节码专家并使用十六进制编辑器。如果您确实进行了一些测试,则无需“查看内部”任何内容。

【讨论】:

  • +1 坚持测试是验证序列化的正确方法。
  • 谢谢,我倾向于“做”测试,而不是编写测试。您的解决方案让我有动力实际编写测试;)
【解决方案2】:

编写一个加载文件并反序列化对象的类。然后使用 Eclipse 的 Debugging View 浏览对象(通过设置断点)。

【讨论】:

    【解决方案3】:

    这不是“独立”的答案,只是 OrangeDog 答案的扩展。

    “编写一些测试(使用 Eclipse 内置的 JUnit 支持)。”

    如果您想测试序列化,请编写执行以下操作的测试:

    1. 将一个对象序列化为一个文件。
    2. 从同一文件反序列化为不同的对象。
    3. 比较两个对象,看看反序列化的对象包含所有应该被序列化的值(ie确保“所有必要的属性都已写入” )。

    【讨论】:

      【解决方案4】:

      虽然这不是一个成熟的编辑器,但 Eamonn McManus 编写了一个代码转换器,可以将序列化的 blob 解码为人类可读的形式。 http://weblogs.java.net/blog/2007/06/12/disassembling-serialized-java-objects

      如果考虑二进制兼容性和性能,这将是研究 Externalizable 而不是 Serializable 的好时机。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      相关资源
      最近更新 更多