我正在写一些关于

android的游戏.我想知道如何保存设置,以免出现更新问题.

例如,我使用序列化保存设置,我有类GameChar

public class GameChar implements Serializable{

int health;

int damage;

Sword sword;

}

但后来我决定为我的游戏角色增加价值装甲,我改变了类:

public class GameChar implements Serializable{

int health;

int damage;

int armor;

Sword sword;

}

现在有了更新,我放松了所有进度,因为新类GameChar与GameChar不同.

我有一个想法,使用Map< String,Object>其中key是值的名称我保存,value是我想要的任何对象(整数,浮点数,日历或一些我的用户类Sword).我将使用序列化将此Map保存到文件.

但是,如果我更改了我的一些用户类Sword,它将与我的Map中已经不一样,并且我将再次松开更新的进度.

也许有一些我想念的图案或技术让它更优雅.

最佳答案 您是否注意到,在实现Serializable时,系统会要求您声明一个名为serialVersionUID的静态长度?

此变量的目的是在反序列化时检测类的旧版本.尝试使用版本2类从保存的数据反序列化版本1对象将导致异常.

(您可以自己实现此行为,如果您不使用Java的序列化工具,它只是一个数字和if)

一旦检测到您保存的对象是陈旧的,并且与当前的类定义不匹配,您可以手动修复该问题.例如,如果你知道一个新的成员int a;在版本2中声明,并且您选择了使用版本1序列化的对象,您可以分配一个尽管在保存的信息中缺失但仍然有意义的值.

不幸的是,跟踪版本是你的工作.最简单的方法是确保可以始终从没有调整的旧版本实例化更新的版本 – 例如,将null设置为有意义的值.

java 保存 设置_java – 保存设置的实现相关推荐

  1. java 保存 设置_java的保存按钮怎么设置?

    java的保存按钮怎么设置? 关注:291  答案:2  mip版 解决时间 2021-01-30 12:03 提问者我不想放过你 2021-01-29 13:34 不要用java.swing中的类 ...

  2. java classpath设置_Java CLASSPATH设置

    Java CLASSPATH设置 CLASSPATH: CLASSPATH是一个环境变量,Application ClassLoader使用它来定位和加载.class文件. CLASSPATH定义路径 ...

  3. Java jpanel 设置_Java中设置Jpanel的背景

    一起学习 1.创建一个类ImagePanel,代码如下 import java.awt.BorderLayout; import javax.swing.JPanel; import java.io. ...

  4. java 保存 设置_如何在菜单中保存设置

    我已经制作了一个静音按钮脚本(在我的菜单/暂停屏幕中)有问题 . 静音/取消静音部分按照我的要求工作,但无论何时我死了,将场景从"游戏"改为"菜单",静音按钮都 ...

  5. java preferences设置_Java利用Preferences设置个人偏好

    Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...

  6. java喜好设置_Java中使用Preferences 的 API设置用户偏好

    Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...

  7. java保存数字_Java:JFormattedTextField保存数字

    即使JFormattedTextField实现DecimalFormat和NumberFormat ,也会使用DocumentListener , 1)通过使用DecimalFormat或Number ...

  8. java时间设置_JAVA中的时间操作

    java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...

  9. 设置JAVA环境设置_Java为什么要设置环境变量、JAVA_HOME

    1. 为什么要说这个问题? 想起来两年前刚学习Java时,被要求先要设置环境变量,自然不解,随后网上找答案. 现在想来感觉当时看到的答案都是神神叨叨,含糊不清,没有几个说的明明白白的.当然也有可能是当 ...

最新文章

  1. python读文件路径-在Python中按路径读取数据文件的几种方式
  2. 计算机面试数据库基本知识,面试基础知识集合(python、计算机网络、操作系统、数据结构、数据库等杂记)...
  3. Linux中的一个命令行计算器bc简介
  4. ofo回应发币传闻:从未参与虚拟货币的发行 与GSE Lab合作已终止
  5. oracle数据库连接不稳定,Oracle数据库自连接查询的缺点及解决方法
  6. squid android 工具包,xUtils Android工具包 v3.9.0
  7. 信道滤波带宽,信号带宽,频率误差的关系
  8. NetCore Vue前端实现导出功能及解决导出excel表格无法打开的问题
  9. Spring Boot基础学习笔记08
  10. PS4 安装 Linux系统
  11. 微星迫击炮B550M MORTAR WIFI 插三根内存不开机、黑屏、蓝屏、BIOS报错
  12. 纪念尼古拉·特斯拉---一个伟大却很少被普罗大众认识的科学家
  13. Android微信浏览器标题,微信浏览器设置网页标题
  14. Terraform 和 Oracle Cloud Infrastructure
  15. 剑灵服务器延迟时间在哪看,《剑灵怎么看延迟》,剑灵怎么显示ping
  16. 《铁甲雄兵》能在海外火起来的秘诀是……
  17. 吹爆的一种深度拷贝方式
  18. Garbage First介绍
  19. 基于jsoup的Element实现将树形结构转换成XML格式
  20. 自学2年java,简历包装成2年工作经验,面试全部失败

热门文章

  1. Chromium OS 开源项目
  2. [wbia 2.2] 对检索结果进行评估
  3. ISA 2006利用Bandwidth Splitter定制带宽和限制流量
  4. 自旋锁和互斥锁实例_多线程编程之自旋锁
  5. pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现
  6. python使用ssh 中文_Python3制作简易SSH登录工具
  7. Python | 不使用库函数将十进制数转换为二进制
  8. linux内核计数函数,linux中的内核引用计数器
  9. 交际过程的两个基本环节_跨文化交际学概论笔记(二)
  10. 测试私有方法 重构_一个全栈工程师重构之路:中小公司 DevOps 落地实践