可能重复:
如何正确覆盖克隆方法?
我有一个简单的类,里面有一堆原始变量,总共大约 100-200 个。它的结构非常简单,如下所示:
public class Level implements Clonable {
int speed;
boolean wallKicks;
boolean bigMode;
float targetFrequency;
long milliseconds;
double fade;
int[] perfectPenalties;
<100 or so more things like this>
}
我需要能够克隆这个类。现在,我刚刚在我的 clone() 方法中为每个成员变量明确输入了复制操作:
public Object clone() {
Level newLevel = new Level();
newLevel.speed = speed;
newLevel.wallKicks = wallKicks;
newLevel.bigMode = bigMode;
newLevel.perfectPenalties = perfectPenalties.clone();
<etc>
}
问题是要确保我没有遗漏克隆方法中的任何值是一项艰巨的任务。将来我还想实现一个 equals() 函数,这意味着我必须手动同步 3 个位置的数据。不愉快。
有没有更简单的方法可以做到这一点?我愿意接受程序化解决方案或其他任何可以完成这项工作的东西。我只想有一些比查看三个并排和匹配变量更容易的东西。
谢谢你。