gpt4 book ai didi

没有序列化的 Java 深度复制

转载 作者:搜寻专家 更新时间:2023-11-01 07:38:29 24 4
gpt4 key购买 nike

我一直在为 Android 编写一个纸牌游戏,我非常困惑如何保存我的游戏状态。为了简要说明我的程序,我有一个用于显示我的卡片的 Sprite 类,它包含一个位图图像、一个位置点和一个边界矩形。我继承了这个类来制作一个卡片类,它有两个位图,这两个位图根据卡片是面朝上还是朝下进行切换,以及用于存储花色和等级的枚举。这些卡片对象放置在 CardStack 对象中,其中包含附加位置和卡片数组列表。游戏模型由各种 CardStacks 以及在堆栈之间移动卡片的规则组成。游戏运行良好。

现在我想知道如何保存我的游戏状态。我想序列化我的整个游戏对象并将其保存到一个文件中。然而,有许多对象(位图、点、矩形、颜色等)是不可序列化的。在 C# 中,我知道您可以使用 MemoryStream 并只复制整个对象,但我在 Java 中找不到不需要所有内容都可序列化的类似方法。 Java中有类似的东西吗?有什么更好的方法可以构造我的游戏模型对象吗?任何建议将不胜感激。谢谢!

最佳答案

将gui抽象成业务对象,让gui对象封装这些业务对象

这样卡片就不需要知道它需要显示什么位图(甚至根本不需要知道它被显示了)

那些业务对象是你想要序列化的,gui 可以从反序列化的对象中重建

关于没有序列化的 Java 深度复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276214/

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