我想找到一种有效的方法来克隆一个大系统对象(在我的例子中是行星系统)及其所有子对象。子对象有坐标和类似的东西,行星等。所以我猜是一个深拷贝..
我尝试了克隆和一些可序列化的 hack,似乎没有用,副本的子对象属性没有保持不变,因为在我制作副本并且行星继续绕行后我尝试打印副本的某些行星坐标。
我的主要目标是保存整个系统对象位置、状态等的当前状态,并在复制完成后的任何给定时间恢复到它。 希望我没有误解任何东西..
最佳答案
如果您以后必须保留对象并恢复状态,您应该使用 java 序列化或例如 db4o (这个真的好用)。
序列化也应该起作用——你在你的“宇宙”(和“宇宙”本身)中聚合的每个类都应该实现可序列化接口(interface),任何你不想序列化的字段都应该标记为transient
.
关于java - 具有所有子对象的深度复制java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839975/