Java 反序列化对象引发本地类不兼容的异常

Java 反序列化对象引发本地类不兼容的异常,java,object,serialization,deserialization,iostream,Java,Object,Serialization,Deserialization,Iostream,我想问一个问题,我有一段代码如下: MyOwnObject deserializedObject = null; try{ ByteArrayInputStream bis = new ByteArrayInputStream(serializedObject.getBytes()); ObjectInputStream ois= new ObjectInputStream(bis); deserializedObject = (MyOwnObject)ois.readO

我想问一个问题,我有一段代码如下:

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

在stacktrace中,有一些关于我的对象中某个属性的整型的东西..请原谅我的新手..:|

在尝试捕获之前定义它:

MyOwnObject deserializedObject = null;
在try/catch中,确保删除声明,并将其更改为:

deserializedObject = (MyOwnObject)ois.readObject();

我以前已经试过了,当我调试它时,反序列化对象仍然是空的,不能用于我在对象方法中放入的逻辑。但是它与普通对象很好地工作。首先,按照我上面的建议做,这是正确的。现在,将catch块完全清空几乎总是一个坏主意。你知道它是否真的抛出了任何异常吗?是的,很抱歉,它抛出了一个异常:本地类不兼容:stream classdesc serialVersionUID=1360826667802527544,本地类serialVersionUID=1360826667806852920这样写代码没有意义。(1) 异常永远不能被忽略,(2)依赖于
try
块中代码成功与否的代码也应该在
try
块中。在这种情况下,
反序列化对象
只能存在于
try
块中的所有内容都成功的情况下,因此在该块之外使用它毫无意义。不要写这样的代码。谢谢..很抱歉我还是个新手..谢谢提醒,现在我会一直记住你的建议:)它抛出了一个异常,关于SerialVersionID的一些东西。。。