似乎有一种共识,认为Java的克隆被破坏的程度应该不会被使用,如果可能的话。创建原型副本,我应该使用克隆吗?
我有一个情况是似乎像克隆是正确的工具,但我不知道是否有另一种方式:
我有多种存储在数据库蒙哥对象。它们使用Morphia保存和加载,它使用正确的类和属性自动返回对象。
在某些情况下,存储在数据库中的是我想要创建副本的对象的“原型”。它来自morphia具有正确的类和默认值,我希望能够创建一个保留类和默认值的副本。例如: -
achievementPrototype = morphia.get(id); playerAchievements.add(achievementPrototype.clone());
凡achievementPrototype是一类,这是一个具体实现的AbstractAchievement的。这看起来像克隆做我想要的。我知道,如果成就有物品属性,我将不得不实施他们的克隆,但我没有问题。
我应该使用clone()吗?如果不是,我应该使用什么?
如果我理解正确的话,这似乎有点冒失。基本上你不知道编译时的具体类,所以你正在利用clone()来创建新的实例? –
相关:http://stackoverflow.com/q/2156120/1065197 –