Java中是否有“this”的名称?

Eclipse会给出一个错误,“赋值的左侧必须是变量”,当我尝试这样的事情时:

public class Thing{

  String a1;
  int a2;

  public void meth(){
    Thing A = new Thing();
    this = A;
  }
}

我必须将每个变量()作为一个解决方法。this.a1 = A.a1; this.a2 = A.a2;

有没有其他方法可以在不遍历每个变量字段的情况下执行此操作?
如果不是变量,它叫什么?this


答案 1

this是指向对象的当前实例的伪变量,它不能被重新赋值。根据Java语言规范§3.9节,它也被认为是该语言中的关键字。


答案 2

不,没有简单的捷径。

如果“this”不是一个变量,它叫什么?

this不是变量,而是关键字

尽管很特别,但在许多方面,它就像一个参考。因此,为了保持一致性,必须是一个引用赋值,这不太有意义。thisthis = A

您似乎期望从 执行逐个字段的复制,实际上 Java 的设计人员在这种情况下可以选择这样做。但是,这将与其他参考转让不一致,并且将其作为例外的总体好处根本不清楚。this = AAthis