【发布时间】:2014-11-10 23:10:47
【问题描述】:
我想问一个问题..所以,我有一个这样的代码块:
MyOwnObject deserializedObject = null;
try{
ByteArrayInputStream bis = new ByteArrayInputStream(serializedObject.getBytes());
ObjectInputStream ois= new ObjectInputStream(bis);
deserializedObject = (MyOwnObject)ois.readObject();
ois.close();
}catch(Exception e){
e.printStackTrace();
}
someMapper.insert(deserializedObject);
PS:serializedObject 是我之前从序列化过程中得到的一个字符串,我认为它运行良好。
更新: 代码抛出异常:
local class incompatible: stream classdesc serialVersionUID = 1360826667802527544, local class serialVersionUID = 1360826667806852920
在堆栈跟踪中有一些关于我的对象中某些属性的类型整数的东西..请原谅我的新手..:|
【问题讨论】:
-
这样写代码没有意义。 (1) 永远不应该忽略异常,并且 (2) 依赖于
try块中代码成功的代码也应该在try块中 inside。在这种情况下,deserializedObject只有在try块中的所有内容都成功时才能存在,因此在该块之外使用它无论如何都是没有意义的。不要写这样的代码。 -
谢谢..对不起,我还是个新手..谢谢你的提醒,现在我会永远记住你的建议 :) 虽然它抛出了一个异常,关于 serialVersionUID 的东西。 ..
标签: java object serialization deserialization iostream