采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
翔仔老师好,不太明白这个类里面添加随机序列化ID的作用是什么?能解释下嘛。
另外我没有生成随机序列化ID也没有报错呀? 似乎IDEA默认是不支持自动生成序列化ID的,我后来添加了serialVersionUID插件,就能够自动生成了, 也在此处设置一下就有warn警告了。
同学好,显式地定义serialVersionUID有两种用途: 1)在某些场合,希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有相同的serialVersionUID;在某些场合,不希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有不同的serialVersionUID。
2)当你序列化了一个类实例后,希望更改一个字段或添加一个字段,不设置serialVersionUID,所做的任何更改都将导致无法反序化旧有实例,并在反序列化时抛出一个异常。如果你添加了serialVersionUID,在反序列旧有实例时,新添加或更改的字段值将设为初始化值(对象为null,基本类型为相应的初始默认值),字段被删除将不设置。
谢谢老师
所以,异常类为什么要设置序列化ID,只是因为消除编译器提示吗
异常类同样需要有序列化和反序列化的需求,特别是针对RPC远程通信的时候,客户端和服务器按照双方约定好的异常信息进行展示,此时就涉及到异常的序列化和反序列化了
要知道序列化和反序列化的区别, 一个是将对象转换成字节流(正), 一个是字节流转换成对象(反),Java的序列化机制是通过在运行时判断类的serialVersionUID是不是一致,在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,不然就会报异常
神同步回答。。感谢热心的同学
谢谢同学热心解答~ ^ ^
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
1.9k 47
1.8k 41
2.5k 40
1.8k 39
1.5k 37