编写"reset"方法,重新初始化对象不起作用 - Java



我试图通过将有问题的对象"重新初始化"为新对象来创建重置方法。正在发生的事情是,根据构造函数,存储在对象中的某些值正在重置,但有些值则没有。谁能解释一下?

  public void reset(){
    if(gameHasEnded){
      dicaprio = new CoolCat();
    }  
  }

以上是我的重置方法的示例,用于重置以下对象:

 public CoolCat(){
    area = LEO_START_AREA;  //rectangle object
    speed = 2 + (int)(5*Math.random());
    direction = RIGHT;     
  }
  • 方向和速度似乎被重置,但该区域没有

如果您使用的是并发性,那么第一个问题是要问的是您的重置方法是原子的(在某些锁上同步this还是在对象上,使用默认的synchronized方法修饰符)?如果它是一个简单的单线程程序,那么你确定你正在将对象的实例变量"重置"为新对象本身(如果它们不是原语),而不是现有的对象?最后但并非最不重要的一点是,在您的重置中,只需尝试将值设置为 null(yourObjToRest=null;)在重新初始化它们之前。

编辑:一些代码将有助于给出更具体的答案。

我改变了

public CoolCat(){
    area = LEO_START_AREA;

 public CoolCat(){
    area = new Rectangle(LEO_START_AREA); 

这完全解决了问题。

相关内容

  • 没有找到相关文章

最新更新