为了账号安全,请及时绑定邮箱和手机立即绑定

serialVersionUID 需要么?

老是的代码里没有加入private static final long serialVersionUID = 1L;这行么?我的环境,没有这行会报错呢~


但是加上后运行结束了,我又去掉这行serialVersionUID 。竟然又不出错了~什么鬼

正在回答

1 回答

    因为之前你的类是没有被编译过的(即没有生成.class文件)。当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class(它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的)自动生成一个serialVersionUID作序列化版本比较用,这种情况下,当你运行一次之后,class文件已经产生了,如果class文件(类名,方法明等)没有发生变化(增加空格,换行,增加注释,等等),就算再编译多次,serialVersionUID也不会变化的。。至于你未运行之前没添加UID就会报错,可能是你软件设置的原因。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

serialVersionUID 需要么?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号