原来一直以为子类在重写Object.clone()方法时,需要额外把子类的新增属性也赋值给克隆对象,如下面的代码,other.setAddition(this.addition);我以前写clone 方法时都是加上这一句的。事实上这是不必要的,可以把这一句代码去掉。
要实现这种效果是有前提条件的:在Test类的父类链上,所有的父类必须提供clone方法,并且返回由调用super.clone方法获得的对象。如果任何一个父类的clone方法返回由构造函数创建的对象,这就会产生一个错误的类。当我们重写了clone方法,必须返回super.clone方法获得的对象。
如果遵循了以上规则,Object.clone方法会保证创建Test的实例。这一点看上去挺神奇的。
@Override
public Test clone(){
Test other = null;
try{
other = (Test) super.clone();
//other.setAddition(this.addition);//事实上这句话可以不要的。
return other;
}catch(CloneNotSupportedException e){
throw new AssertionError();
}
}
分享到:
相关推荐
Object.clone()地位冠军:待定作者:亚历克斯·洛尔舞台:0-稻草人动机使用散布运算符... ,可以很容易地对对象进行浅表克隆。 在某些情况下,需要创建对象的深层克隆。 本地复制引用的内存比手动克隆要有效得多。...
jquery.clone
对象克隆ES5的深克隆和比较概要// just ... clone ( src ) ; // shallow copylog ( Object . is ( src , dst ) ) ; // falselog ( Object . equals ( src , dst ) ) ; // truedst . lang . push ( 'javascript' ) ;log
com.hihonor.android.clone.2212201117.apk
下面小编就为大家带来一篇深入理解JavaScript中的对象复制(Object Clone)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Object.clone、Object.equals 的实现 将以下方法添加到 Object.prototype: Object.prototype.clone() 将一个对象克隆到另一个对象中 深克隆,无论多深 不克隆函数 - 出于性能原因保留对同一函数的引用 如果出于...
133.Clone_Graph_克隆图【LeetCode单题讲解系列】
Object类中的clone方法clone()方法的作用克隆方法用于创建对象的拷贝,为了使用clone方法,类必须实现java.lang.Cloneable接口
现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过一阵子,在java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Clone机制是如何工作的...
console.log( DataType.Object.clone( { a : 1 } ) ); < / script > 网络工作者 importScripts ( "lib/DataType.js" ) ; console . log ( DataType . Object . clone ( { a : 1 } ) ) ; 节点.js var DataType ...
下面小编就为大家带来一篇java object 之clone方法全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
$ git clone https://github.com/LeuAlmeida/facebook.clone.git // Entering the folder $ cd facebook.clone // Installing the dependencies $ yarn // In the terminal, run to start the project $ yarn dev ...
深化理解JavaScript中的对象复制(Object Clone)_.docx
详细的描述了Java中 clone方法使用
Java中clone方法共6页.pdf.zip
git clone 最新版 不多说上资源 好用测试ok git clong git clone 最新版 不多说上资源 好用测试ok git clong
google.clone 克隆Google主页
代码如下://Hash对象的工具函数 function $H(object) { return new Hash(object);... object.toObject() : Object.clone(object); } //覆盖Enumerable里面的方法,遍历Hash对象时会用到 function _each(i
测试发现,textarea和select的jquery的clone方法有问题,textarea...jquery.fix.clone.js (function (original) { jQuery.fn.clone = function () { var result = original.apply(this, arguments), my_textareas = th