似乎有一種共識,認爲Java的克隆被破壞的程度應該不會被使用,如果可能的話。創建原型副本,我應該使用克隆嗎?
我有一個情況是似乎像克隆是正確的工具,但我不知道是否有另一種方式:
我有多種存儲在數據庫蒙哥對象。它們使用Morphia保存和加載,它使用正確的類和屬性自動返回對象。
在某些情況下,存儲在數據庫中的是我想要創建副本的對象的「原型」。它來自morphia具有正確的類和默認值,我希望能夠創建一個保留類和默認值的副本。例如: -
achievementPrototype = morphia.get(id); playerAchievements.add(achievementPrototype.clone());
凡achievementPrototype是一類,這是一個具體實現的AbstractAchievement的。這看起來像克隆做我想要的。我知道,如果成就有物品屬性,我將不得不實施他們的克隆,但我沒有問題。
我應該使用clone()嗎?如果不是,我應該使用什麼?
如果我理解正確的話,這似乎有點冒失。基本上你不知道編譯時的具體類,所以你正在利用clone()來創建新的實例? –
相關:http://stackoverflow.com/q/2156120/1065197 –