开发者社区 问答 正文

为什么 serialVersionUID 改变的时候会抛异常

为什么 serialVersionUID 改变的时候会抛异常

展开
收起
一人吃饱,全家不饿 2020-12-27 23:20:24 1046 分享 版权
1 条回答
写回答
取消 提交回答
  • serialVersionUID 改变会导致无法反序列化以前的对象,在 ObjectStreamClass.initNonProxy 中存在校验

    if (model.serializable == osc.serializable &&
                        !cl.isArray() &&
                        suid != osc.getSerialVersionUID()) {
                    throw new InvalidClassException(osc.name,
                            "local class incompatible: " +
                                    "stream classdesc serialVersionUID = " + suid +
                                    ", local class serialVersionUID = " +
                                    osc.getSerialVersionUID());
                }
    
    
    2020-12-27 23:21:08
    赞同 展开评论
问答地址: