关于java/android 数据序列化后SerialVersionUID的获取

2023-11-19

本人android 开发,遇到了一个关于数据序列化的坑,纪录下来以便以后查看。

 所有需要序列化本地的bean都需要继承Serializable 否则无法序列化(如果不了解序列化的知识请自行百度)。

 我继承了Serializable 但是没有设置SerialVersionUID 最后编译后系统根据bean的变量自己生成了一个。

 随着程序的迭代,需要修改bean的结构最终导致,新版本的APK在读取这个bean后无法得到它的值,因为它的成员变量结构改变了。导致SerialVersionUID不一致了。

 但是我又想能读到序列化的这个bean怎么办?我产生了一个想法如果我知道旧版本的bean的SerialVersionUID值,然后在新版的bean里设置SerialVersionUID是一样的那么不就可以读出来了吗?

经过一系列的查找java 给我们提供了一个可以获取SerialVersionUID的方法,代码如下

 ObjectStreamClass osc2 = ObjectStreamClass.lookup(Calendar.class);

      // get the serial for Calendar
      System.out.println("" + osc2.getSerialVersionUID());
这样的两句话就可以打印出来UID 了,拿到UID 我在新版本里赋值成一样的即可。 我的问题就解决了。让我感慨学无止境啊
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于java/android 数据序列化后SerialVersionUID的获取 的相关文章

随机推荐

  • Android Studio安装教程+打包APK

    前言 这是一篇给新人的教程 如果你觉得简单啰嗦请保持冷静 同时如果本篇能给予到你帮助 是我的荣幸 Android Studio安装教程 点击链接下载Android Studio Android Studio官网下载 下载完成后双击 exe文
  • [实验三]LZW 编解码算法实现与分析

    目录 一 LZW算法 1 1 编码步骤 1 2 解码步骤 1 3 关于有可能出现当前码字CW不在词典中的情况说明 二 代码实现 2 1 程序说明 2 2 数据结构 2 3 bitio h 2 4 bitio c 2 5 lzw c 三 实验
  • VC++ FTP文件上传(断点续传)

    include
  • vue项目设置ip访问

    1 只用ip访问 打开config gt index 文件 host 172 16 1 95 新增host 改成IP地址 最后重新运行项目 2 既可以IP访问 由可以localhost访问 将config gt index 中host 该为
  • 嵌入式学习(第二周)

    目录 二 C语言基础 2 运算符和表达式 2 1 运算分类 2 2 算数运算符 2 3 关系运算符 2 4 逻辑运算符 2 5 条件运算符 2 6 位运算符 2 7 运算符的运用实例 3 程序结构和过程控制 3 1 C语言程序结构 3 2
  • 2021-03-30 maven

    1 maven父子工程 3 maven环境优化 1 修改web xml为最新的 2 将maven结构搭建完整 4 编写一个servlet Javaweb下载文件的头
  • Java日志简介及SpringBoot日志

    一 什么是日志 日志 就是介绍一个过程和经历的详细记录 项目日志 就是项目开发过程的详细记录 一般由项目经理记录 代码里的日志 就是程序员记录某个开发过程的详细情况 这是项目里每个程序员需要做的工作 日志和异常处理结合得当的话 会给项目维护
  • vue+element-ui 实现弹窗验证用户信息

  • C++零散易错点总结

    对日常做题中遇到的一些零散的易错点的总结 持续更新ing 1 string的length方法返回的是无符号数 当与负数比较时需要强制类型转换 否则会报错 1
  • appium+python自动化测试

    获取APP的包名 1 aapt即Android Asset Packaging Tool 在SDK的build tools目录下 该工具可以查看apk包名和launcherActivity 2 在android sdk里面双击SDK man
  • MYSQL8隐藏索引

    问题场景 我们知道 索引太多会导致UPDATE DELETE INSERT的时候 引擎需要更新索引信息 产生额外的开销 从而影响数据库性能 所以需要清理无效索引 但是表是数年前建的 索引基本都不是自己添加的 无法准确判定是否可以删除 万一删
  • shell 脚本命令太长,如何换行?

    再加ENTER
  • ElasticSearch ES 安装 常见错误 Kibana安装 设置 权限 密码

    最近在学习ES数据库 所以将一些东西记录一下 以下所有的都是基于es7 8 0版本进行的 下载安装ES数据库 安装本体 下载地址 linux mac os windows es的安装非常简单 基本都是解压然后运行就行了 这里我们就以linu
  • 如何在十天内掌握线性代数

    最近 我的朋友斯考特 杨 Scott Young 成就了一个惊人的壮举 他在一年之内 完成了传说中的MIT计算机科学课程表的全部33门课 从线性代数到计算理论 最重要的是 他是自学的 观看在线教程讲座 并用实际的考试作自我评估 到斯考特的F
  • 时序预测

    时序预测 MATLAB实现RF 随机森林 时间序列预测 目录 时序预测 MATLAB实现RF 随机森林 时间序列预测 预测效果 基本介绍 预测准备 程序设计 主程序 训练子函数 预测子函数 参考资料 致谢 预测效果 基本介绍 在机器学习中
  • Maven依赖冲突

    依赖冲突 依赖冲突是指项目依赖的某一个jar包 有多个不同的版本 因而造成类包版本冲突 依赖传递 项目依赖了A A依赖了B 项目自动依赖了B 注意 父项目中的依赖有
  • GitHub 上最火的开源项目 —— Java 篇

    很多开发者在看到自己感兴趣的项目时会使用 Star 功能 可以说 Star 的数量在一定程度上代表了开源项目的热门程度 本文整理了 Java 语言中 star 数最多的十五款开源项目 这些项目在 GitHub 上的 star 数均超过 15
  • 开发 Leader 们最该了解的软件度量指标

    无论何时 只要是要评估或对比某些东西 就需要使用度量指标 它们是可量化的衡量标准 用于判断每个行业的进展 这其中包括软件开发 在该领域 开发负责人依靠软件度量指标来跟踪性能和生产 在我们关于如何衡量和提高开发人员工作效率的博客文章中 我们讨
  • ext 6.0开发实例二

    由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架 因而在使用CMD来创建应用程序前 需要考虑清楚你是要创建一个通用应用程序 还是仅仅只是针对桌面或移动设备的应用程序 要做这样的考量 是因为通用应用程序和比较单
  • 关于java/android 数据序列化后SerialVersionUID的获取

    本人android 开发 遇到了一个关于数据序列化的坑 纪录下来以便以后查看 所有需要序列化本地的bean都需要继承Serializable 否则无法序列化 如果不了解序列化的知识请自行百度 我继承了Serializable 但是没有设置S