编写“重置”方法,重新初始化不起作用的对象 - Java

时间:2013-10-20 02:55:02

标签: java reset object-initialization

我试图通过将相关对象“重新初始化”为新对象来创建重置方法。发生的事情是,根据构造函数重置存储在对象中的一些值,但有些值不是。谁能解释一下呢?

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

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

 public CoolCat(){
    area = LEO_START_AREA;  //rectangle object

    speed = 2 + (int)(5*Math.random());

    direction = RIGHT;     
  }
  • 方向和速度似乎重置但区域不

2 个答案:

答案 0 :(得分:0)

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

编辑:一些代码有助于提供更具体的答案。

答案 1 :(得分:0)

我改变了

public CoolCat(){
    area = LEO_START_AREA;

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

这完全解决了这个问题。

相关问题