栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java.io.InvalidClassException:本地类不兼容:

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java.io.InvalidClassException:本地类不兼容:

如果一个类未

private static final long serialVersionUID
在代码中显式定义a
,则它将自动生成,并且不能保证不同的机器将生成相同的id。看起来正是这样。同样,如果类在任何方面都不同(使用不同版本的类),则自动生成的
serialVersionUID
s也将不同。

Serializable
界面的文档中:

如果可序列化的类未显式声明a

serialVersionUID
,则序列化运行时将根据
serialVersionUID
该类的各个方面来计算该类的默认值,如Java™对象序列化规范中所述。但是,
强烈建议
所有可序列化的类显式声明
serialVersionUID
值,因为默认
serialVersionUID
计算对类详细信息高度敏感,而类详细信息可能会根据编译器的实现而有所不同,因此可能导致
InvalidClassExceptions
反序列化期间发生意外情况。因此,为了保证
serialVersionUID
不同Java编译器实现之间的值一致,可序列化的类必须声明一个显式
serialVersionUID
值。还强烈建议明确
serialVersionUID
声明
private
尽可能使用修饰符,因为此类声明仅适用于立即声明的类-
serialVersionUID
字段作为继承成员没有用。数组类不能声明一个explicit
serialVersionUID
,因此它们始终具有默认的计算值,但是
serialVersionUID
对于数组类,无需匹配值。

您应该

serialVersionUID
在类定义中定义一个,例如:

class MyClass implements Serializable {    private static final long serialVersionUID = 6529685098267757690L;    ...


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号