【发布时间】:2015-05-23 17:09:00
【问题描述】:
public MyConstructor(MyConstructor mc){
this.setId(mc.getId());
this.setName(mc.getName());
}
这里为什么我们需要通过获取它的getter方法来设置构造函数中的值。这背后有什么特殊目的吗?
【问题讨论】:
-
嗨,唯一的原因是访问器(getter/setter)是否有一些逻辑。
-
您不使用正在创建的对象 (
this) 中的 getter,而是使用正在复制的对象中的 getter (mc) -
如果你愿意,构造函数代码可以写成
this.id = mc.id;(假设有一个名为id的支持字段)。或setId(mc.id)。或setId(mc.getId()). -
在这种情况下,
this是可选的,但如果你有public Constructor(int x){ this.x = x; },那么你需要this来确定哪个x是字段,哪个是构造函数的参数。 -
添加到 Vyncent 的评论中:...或者他们是否可能在未来获得一些逻辑(概率取决于您期望如何开发/使用该类)。如果您直接使用
this.id = mc.id形式,当您决定 setter 或 getter 需要一些额外的逻辑时,您还必须更改构造函数。
标签: java constructor domain-object