powerdesigner 转为java实体对象时怎么序列化_[转] 实体类实现Serializable序列化,自动生成serialVersionUID的办法...

本文讲述了在Android应用中使用GreenDao时遇到序列化错误,发现是实体类缺少serialVersionUID字段。作者详细解释了serialVersionUID的作用,并提供了生成和设置的方法。
摘要由CSDN通过智能技术生成

今天在对一个实体类进行序列化的时候,出现了一个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

f0e307464a5b58230eff8a2d54fd86ac.png

第二步:选中实体类类名按住Alt+Enter,选择条目,即可生成serialVersionUID,如图:

8f7c7ff33ee5645635251be6f75f2f87.png

生成serialVersionUID如图

3549a9b87a2056056ee29da045bef6e7.png

大功告成!

————————————————

版权声明:本文为CSDN博主「蛋蛋君de忧伤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zhw1551706847/java/article/details/96476194

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值