Fly*_*ynn 1 java serialization
可能重复:
我为什么要打扰serialVersionUID?
我正在使用一个实现Serializable的类.Eclipse给了我一个"No Serial UID"警告,但编写和阅读该类工作正常.我想知道具有UID的Serializable类的目的是什么?这只是一种良好的做法,还是我的班级最终没有它会有效?可以是任何数字吗?
使用不同的VM或在不同的计算机上对同一个类进行序列化和反序列化非常重要.UID用于检查您尝试反序列化的类是否真的是您认为的类,因此如果您的代码中的类具有一个UID,并且序列化的类具有不同的类,则de - 序列化将失败.
JVM会自动给出一个没有UID的类,但不能保证不同的JVM会为同一个类提供相同的UID.
阅读Serializable接口的javadoc以获取更多详细信息.
可以是任何数字吗?
理想情况下,它应该是您的类的特定版本(如哈希)所特有的一些数字,如果您对类影响序列化字段(非transient)进行更改,则UID需要更改.我认为Eclipse可以自动生成UID.
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |