0

编辑:

谢谢各位,明白了!似乎从旧对象调用了 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;

并将worldandbody对象传递给我已经克隆的bodyData对象。

然而,当我尝试从对象内部访问这个世界和身体对象时BodyDataObj,我得到一个NullPointException,就好像它们是克隆的空白一样。

任何想法如何解决这个问题?

谢谢!

4

1 回答 1

1

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

b.getWorldCenter() 返回空值。

于 2012-05-17T13:58:04.697 回答