有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java反序列化对象类已更改

过去我序列化了一个没有serialUID的对象数组,但同时我改变了类——我添加了一个布尔值。 现在我无法还原这些对象。 我尝试重新创建旧类(来自svn),并删除了关于“no serial uid”的警告,以便从Eclipse生成serialUID。我试着把它粘贴到新版本的课堂上,但还是失败了。我不确定这是否是因为删除警告会更改生成的serialUID。 接下来,我尝试使用工具“serialver”,但我一直收到一个“未找到类”错误

有人能给我解释一下我应该在命令行中键入什么吗,因为我不完全确定在类路径中键入什么? 我用这个作为我的模板: serialver-classpath C:\foo\classes。jar com。酒吧食物信息 我的工作区是D:\blabla\安卓workspace 项目在eclipse中显示为: 显示src xyz显示。JAVA 我从C:\Program Files(x86)\Java\jdk1运行命令。6.0_24\bin


共 (3) 个答案

  1. # 1 楼答案

    下面很好地解释了序列化是如何工作的http://www.javaworld.com/community/node/2915

    你需要做的是:

  2. 获取序列化字节并分析它们, 这些字节包含你的原始类序列号,
  3. 然后你应该为你的代码和编译设置序列号 比如静态final long serialVersionUID=;
  4. # 3 楼答案

    在原始文件上运行serialver实用程序。类文件。这将告诉你它的计算SerialVersionID。然后编辑新源以声明它