tig*_*ger 7 java eclipse serialization
当我在Eclipse中创建实现Serializable接口的Java类时,我收到警告
可序列化类ABCD不声明long类型的静态最终serialVersionUID字段
所以当我点击警告时,我会在Eclipse中获得一个选项
添加生成的串行版本ID
一旦我选择了该选项,Eclipse就会自动serialVersionUID为我创建一个变量.
现在我想知道这个数字是以什么为基础生成的.它只是一个随机数?我可以提供自己的随机数吗?
Boz*_*zho 13
它是根据类的结构 - 字段,方法等计算的.它在对象序列化规范中指定- 请参阅本节以获取确切的格式.
规范描述了在没有提供值的情况下发生的事情,但自动生成使用相同的算法.
流中的项目序列如下:
- 班级名称.
- 类修饰符写为32位整数.
- 按名称排序的每个接口的名称.
- 对于按字段名称排序的类的每个字段(私有静态和私有瞬态字段除外:*字段的名称.*字段的修饰符,写为32位整数.*字段的描述符.
- 如果存在类初始值设定项,请写出以下内容:*方法的名称,.*方法的修饰符java.lang.reflect.Modifier.STATIC,写为32位整数.*方法的描述符,()V.
- 对于按方法名称和签名排序的每个非私有构造函数:*方法的名称,.*该方法的修饰符写为32位整数.*方法的描述符.
- 对于按方法名称和签名排序的每个非私有方法:*方法的名称.*该方法的修饰符写为32位整数.*方法的描述符.
| 归档时间: |
|
| 查看次数: |
3851 次 |
| 最近记录: |