可能重複:
How to properly override clone method?是否有一種更簡單的方法來克隆具有數十個成員變量的對象?
我有中有一堆原始變量,約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個地方的數據。不愉快。
有沒有更簡單的方法來實現這個目標?我願意接受編程解決方案或其他任何能夠完成這項工作的人。我只想比查看三個並排變量和變量的匹配變量更容易一些。
謝謝。
您有一個具有100-200個字段的單個類? –
湯姆:是的。這是一個非常小的文件,描述了一個下降塊遊戲的單一級別。遊戲高度可配置,所以有很多變量來表示所有這些選項。 – JoshuaD