假设User
类具有很多属性,我想复制到复制构造函数中的另一个实例。有没有避免手动为每个字段编写作业的捷径?
例如:
public class User {
private Integer field1;
private Integer field2;
private Integer field3;
private Integer field4;
private Integer field5;
private Integer field6;
private Integer field7;
private Integer field8;
private Integer field9;
private Integer field10;
private Integer field11;
private Integer field12;
private Integer field13;
// and more others fields here
public User(User other) {
this.field1 = other.field1;
// eleven fields here
this.field13 = other.field13;
// and more others fields here
}
}
答案 0 :(得分:2)
不,你不能。
您应该使用复制构造函数。
将所有变量从参数“ user”复制到“ this”的所有变量。
答案 1 :(得分:0)
这里:
this = user;
完全无效。但是,这里是:
this.user = user;
您必须了解自己处于“属于”某个对象的方法的主体中。在方法主体内,您可以使用this
来访问该“拥有”对象。然后,您可以使用this.someField
来寻址该拥有对象的字段。要么读取该字段,要么写入该字段。
但是如前所述:该代码在“属于”拥有对象的方法中运行。因此,不可能(也没有意义)尝试从“所有权”方法中“更改”该所有者。
您可能正在寻找的是副本构造函数,有关简单示例,请参见here。