[转] 实体类实现Serializable序列化,自动生成serialVersionUID的办法
今天在对一个实体类进行序列化的时候,出现了一个bug,如下:
Error:Execution failed for task ':app:greendao'.
> Found 1 problem(s) parsing "E:\heshenghuo\HeShengHuo\app\src\main\java\com\hbmcc\heshenghuo\db\MsgModel.java". First problem:
Pb(96) The serializable class MsgModel does not declare a static final serialVersionUID field of type long (536871008 at line 18).
然后我这个实体类是用GreenDao存储数据库的,第一反应是难道这个类有问题,看了报错的原因,查了下发现是缺乏一个UID,什么鬼?
完美解释:报错是要我们给这个实体类声明一个seriaVersionUID,那serialVersionUID是个什么鬼?
Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的,在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就人为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常InvalidCastException,就是我们刚刚上面看到的这个提示。
那如何生成serialVersionUID呢?
第一步:在Androidstudio中点击File–Setting–Editor–Inspections–Java–Serialization issues–勾选Serializable class without"serialVersionUID"即可,然后点击OK#
第二步:选中实体类类名按住Alt+Enter,选择条目,即可生成serialVersionUID,如图:#
————————————————
版权声明:本文为CSDN博主「蛋蛋君de忧伤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhw1551706847/java/article/details/96476194
作者: eedc
出处:https://www.cnblogs.com/eedc/p/13038905.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
分类:
Java
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析