是否可以在“ this”中分配一个新对象?

时间:2019-05-14 10:10:40

标签: java this

我在类的构造函数中进行了一些计算 现在假设我要更改此类中的变量字段之一,这将影响以前进行的计算。

每次我都会调用任何set方法 我将需要再次运行计算 (或复制两次代码(这是错误的代码。))

我认为,如果我可以如下所示,代码看起来会更好, 我只想知道无法完成的原因是什么?

class Entity
{
    private int x,y,z;
    public Entity(int x,int y,int z)
    {
      Calculating();
    }
    private void Calculating()
    {
      // ... 
    }
    public void Set_X(int x)
    {
      this = new Entity(x,this.y,this.z)
    }
}

1 个答案:

答案 0 :(得分:4)

您无法将新对象分配给this。这总是引用当前对象。

为什么不设置X并从Calculting()调用Set_X方法呢?这将更改当前对象的状态。

如果您不想更改当前对象,例如由于有其他引用,您将不得不创建一个新实例并从Set_X返回它。