克隆对象还克隆新数据,如何防止?

时间:2012-05-17 13:27:26

标签: java

编辑:

谢谢你们,得到它!看来explode()函数是从旧对象调用的,而不是它的新克隆! :)


我有这种对象的哈希表

class BodyDataObj implements Cloneable {

  World world;
  Body body;

  protected BodyDataObj clone() throws CloneNotSupportedException {
    return (BodyDataObj) super.clone();
  }

}

需要时,我从哈希表

中克隆一个所需的对象
BodyDataObj bodyDataMaster = bdoTable.get(name);
BodyDataObj bodyData = null;

try {
  bodyData = (BodyDataObj) bodyDataMaster.clone();
} catch (CloneNotSupportedException e) { 
  // Handle error
}

bodyData.world = world;
bodyData.body = body;

并将worldbody个对象传递给已经克隆的bodyData对象。

然而,当我尝试从BodyDataObj对象中访问此世界和正文对象时,我得到一个NullPointException,好像它们是克隆的空格一样。

任何想法如何解决?

谢谢!

1 个答案:

答案 0 :(得分:1)

从评论的答案来看,答案似乎是这样的:

b.getWorldCenter()返回null。

相关问题