介绍
实现Cloneable接口
重写Object类的clone()
方法,不是Cloneable接口的方法
注意深拷贝和浅拷贝
作用:当两个对象差异较小,可以复制对象再修改,避免new再一个个设置属性
写法1
@Override
public Object clone(){
Person person=null;
try {
person=(Person)super.clone();
person.name=this.name;
person.weight=this.weight;
person.height=this.height;
person.age=this.age;
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return person;
}
写法2
public Person(Person person){
this.name=person.name;
this.weight=person.weight;
this.height=person.height;
this.age=person.age;
this.hobbies= new ArrayList<String>(hobbies);
}
@Override
public Object clone(){
return new Person(this);
}
实例
Android的Bundle和Intent。
OkHttp的OkHttpClient