Jay*_*Jay 26 java field this instance variable-assignment
Eclipse会给出一个错误,"赋值的左侧必须是变量",当我尝试类似的东西时:
public class Thing{
String a1;
int a2;
public void meth(){
Thing A = new Thing();
this = A;
}
}
Run Code Online (Sandbox Code Playgroud)
我不得不将每个变量(this.a1 = A.a1; this.a2 = A.a2;
)分配为一种解决方法.
是否有其他方法可以在不通过每个变量字段的情况下执行此操作
如果this
不是变量,它叫什么?
这是一个java保留关键字,它引用当前对象.它不是一个变量,它是一个java保留关键字.所以this = A;
无效.使用this
关键字我们可以引用当前对象的任何实例变量或方法.你必须引用实例变量,如:
this.a1 = A.a1;
Run Code Online (Sandbox Code Playgroud)
来自Doc:
使用this关键字的最常见原因是因为字段被方法或构造函数参数遮蔽.
您无法this
在Java中分配.这不是变数; 这是一个关键字.
如果您不需要特定实例,您可能会考虑的一件事就是使用return
新实例.
public class Thing{
String a1;
int a2;
public Thing meth(){
Thing A = new Thing();
return A;
}
}
Run Code Online (Sandbox Code Playgroud)
而且你会喜欢它
whatever = whatever.meth();
Run Code Online (Sandbox Code Playgroud)
根据java lang spec §15.8.3 this
是一个关键字,它是一个表达式或语句
this
表示一个值,该值是对其调用实例方法的对象的引用。
在任何一种情况下,它都不是变量
在您的情况下this
是表达式而不是变量。但出于所有目的,只需将其称为关键字