Object的clone()方法、深拷贝、浅拷贝
来源:互联网 发布:爱知科技工资怎么样 编辑:程序博客网 时间:2024/06/02 02:18
一个对象直接使用=,比如Object o1=new Object();
Object o2=o1;那么问题是o1改变,o2也会改变。
这时候,需要不随之前的对象改变而改变,使用clone。
需要注意clone是protect的,所以子类继承Object ,否则抛出异常
public Teacher clone() { try { return (Teacher) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return null; }
就这样复制成功,不受改变而影响。
但是原来对象一些属性有些是可变对象,这些对象简单的clone持引用,还是不可以。
原因在于你复制了对象的引用,这是不行的,如果对象改变,你也会改变。当然String
这种对象,他就是不变,所以他怎么变都没有事情,但是其他对象就不行了。
那么记住,基本类型,String直接对象clone,其他需要在对象clone,其属性还要继续clone
public class Teacher implements Cloneable { String id; int num; Date date;public Teacher clone(){ Teacher t= (Teacher)super.clone(); t.date=(Date)t.date.clone();return t;}}
0 0
- Object的clone()方法、深拷贝、浅拷贝
- Object的clone()方法、深拷贝、浅拷贝
- java Object的clone方法,浅拷贝与深拷贝
- Java中object的clone()方法的浅拷贝和深拷贝
- clone方法 --深拷贝与浅拷贝
- Java的clone方法--深拷贝和浅拷贝
- (3) java.lang.Object.clone()方法 以及 深拷贝浅拷贝 及其 实现
- Java中Object的clone()及浅拷贝、深拷贝分析
- 深拷贝与浅拷贝(clone方法与赋值)
- java clone方法之深拷贝和浅拷贝
- Java中的clone方法之浅拷贝与深拷贝
- Java clone方法深拷贝浅拷贝完全解析
- java中的clone()方法,浅拷贝和深拷贝
- Java中的clone方法-深拷贝与浅拷贝
- Object浅拷贝、深拷贝
- 浅拷贝和Clone方法
- 对象克隆以及clone()方法实现时的深拷贝和浅拷贝
- java中clone方法的理解(深拷贝、浅拷贝)
- 本人的MSDN文档集合
- 两个栈模拟队列,两个队列模拟栈
- XGBoost-安装(Windows/VS2015)
- 大话设计模式—模板方法模式
- 线程
- Object的clone()方法、深拷贝、浅拷贝
- Windows下IPython的配置安装
- tomcat性能调优 大赞
- 王学岗ListView和源码解析(二)
- onActivityForResult不执行
- 汇编级代码优化
- Mysql To Charts(四)--draw ichartjs
- Kubernetes安装部署
- hadoop-2.7.2伪分布模式安装教程