gpt4 book ai didi

java - 当数据存储和数据格式在未来版本中可能发生变化时,存储应用程序数据的最佳方式?

转载 作者:行者123 更新时间:2023-11-30 01:31:59 29 4
gpt4 key购买 nike

我正在制作一个 Android Java 应用程序游戏(尽管这个问题实际上适用于所有语言)并希望尽快发布第一个版本。我对如何在游戏中保存数据感到紧张。我的问题是,如果在以后的更新中,我决定存储更多数据或以不同的方式存储相同的数据,我需要小心我不会丢失或损坏升级用户的数据(即我希望用户能够在新版本中使用旧版本创建的数据,比如他们以前的高分)。

例如,假设我想在版本 1 中保存高分并且我使用如下类:

class Score { String name; int score; }

然后我将分数存储在 ArrayList 中,然后为了保存/加载分数,我序列化了 ArrayList 对象。

在 1.1 版中,也许我决定要存储每个乐谱的日期。然后我可以更新 Score 对象以包含一个日期字段,并在旧对象不包含日期的情况下使用日期的默认值。

在 1.2 版中,我可能决定将分数存储在 TreeSet 中,而在 1.3 版中,我可能还想在线加载/存储分数。

无论如何,我的意思是,有没有什么通用的技巧可以让我在这里的生活更轻松?我特别关心上面的情况,其中一个人从版本 1.1 升级到 1.2,一个人从 1.0 升级到 1.2。测试所有场景的数据损坏听起来很头疼。

选择合理且可扩展的东西真的很难吗?

我认为使用 String->Object 中的 HashMap 作为通用存储对象可能很容易,例如storage.put("HighScoreName1", "Bob"); storage.put("HighScorePoints1", 15);.获取信息比使用自定义类要复杂一些,但添加额外字段等似乎很容易,无需太多工作。遍历以这种方式存储的列表并不是很好。

最佳答案

如果您正在使用 SQLiteOpenHelper,请查看 onUpgrade方法。

Called when the database needs to be upgraded. The implementation should use this method to drop tables, add tables, or do anything else it needs to upgrade to the new schema version.

关于java - 当数据存储和数据格式在未来版本中可能发生变化时,存储应用程序数据的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376327/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com