【发布时间】:2019-05-09 16:41:26
【问题描述】:
好像你不能创建一个复制构造函数,你不能让它实现可克隆。
我正在考虑使用反射来迭代子类的每个属性,但有没有更好的方法?
【问题讨论】:
好像你不能创建一个复制构造函数,你不能让它实现可克隆。
我正在考虑使用反射来迭代子类的每个属性,但有没有更好的方法?
【问题讨论】:
好像你不能创建一个复制构造函数,你不能让它实现可克隆。
您可以自己在代码生成器中轻松实现这些东西。在you will need to generate some custom code 和Cloneable 这两种情况下,您都需要编写生成器策略(programmatic 或configurative),将Cloneable 接口添加到所有生成的记录中。
如果您不使用生成的记录,或者如果您想克隆任意记录,您仍然可以使用许多 Record.into() methods 之一,它将记录内容复制到新类型中。
【讨论】:
implements Cloneable 添加到几条记录中,而不是添加到每条记录中。
<recordImplements>
为了复制一条记录,我使用了UpdatableRecord.copy() 方法。
/**
* Duplicate this record (in memory) and reset all fields from the primary
* key or main unique key, such that a subsequent call to {@link #store()}
* will result in an <code>INSERT</code> statement.
*
* @return A new record, distinct from <code>this</code> record.
*/
R copy();
【讨论】: