java - 具有所有子对象的深度复制java对象

标签 java clone deep-copy

我想找到一种有效的方法来克隆一个大系统对象(在我的例子中是行星系统)及其所有子对象。子对象有坐标和类似的东西,行星等。所以我猜是一个深拷贝..

我尝试了克隆和一些可序列化的 hack,似乎没有用,副本的子对象属性没有保持不变,因为在我制作副本并且行星继续绕行后我尝试打印副本的某些行星坐标。

我的主要目标是保存整个系统对象位置、状态等的当前状态,并在复制完成后的任何给定时间恢复到它。 希望我没有误解任何东西..

最佳答案

如果您以后必须保留对象并恢复状态,您应该使用 java 序列化或例如 db4o (这个真的好用)。

序列化也应该起作用——你在你的“宇宙”(和“宇宙”本身)中聚合的每个类都应该实现可序列化接口(interface),任何你不想序列化的字段都应该标记为transient.

关于java - 具有所有子对象的深度复制java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839975/

相关文章:

java - 避免并发修改

java - 继承AppCompatActivity和ListActivity

java - 毕业生 :appengineEnhance fails

初始化类时相当于 VB.NET "With"语句的 Java

Java 实现克隆、泛型类。

java - 无法克隆 ArrayList<MatOfPoint> 元素

java - 计算斐波那契数的平均值

c# - Binding 没有 Clone 方法,复制它的有效方法是什么

java - 复制构造函数应该有多深

c# - 深度复制一个值类型的锯齿状数组而不进行序列化