shr*_*000 1 java serialization serialversionuid
我最近阅读了一条评论说,从Java 5开始,不再需要使用serialVersionUID来使同一类的不同版本兼容序列化/反序列化.它是否正确?也许它与协变返回类型混淆了.所以想和大家一起来看看.
在对Java 5的JavaDoc还指出,它需要:
如果可序列化类未显式声明serialVersionUID,则序列化运行时将基于类的各个方面计算该类的默认serialVersionUID值,如Java(TM)对象序列化规范中所述.但是,强烈建议所有可序列化类显式声明serialVersionUID值,因为默认的serialVersionUID计算对类细节高度敏感,这些细节可能因编译器实现而异,因此在反序列化期间可能导致意外的InvalidClassExceptions.因此,为了保证跨不同java编译器实现的一致的serialVersionUID值,可序列化类必须声明显式的serialVersionUID值.强烈建议显式serialVersionUID声明尽可能使用private修饰符,因为此类声明仅适用于立即声明的类 - serialVersionUID字段作为继承成员无用.
| 归档时间: |
|
| 查看次数: |
1342 次 |
| 最近记录: |