勤奋的搬运工

导航

Cloneable的使用

Cloneable的使用

  • 在开发过程中,拷贝实例是常见的一种操作,如果一个类中的字段较多,而我们又采用在客户端中逐字段复制的方 法进行拷贝操作的话,将不可避免的造成客户端代码繁杂冗长,而且也无法对类中的私有成员进行复制,而如果让需要 具备拷贝功能的类实现Cloneable接口,并重写clone()方法,就可以通过调用clone()方法的方式简洁地实现实例 拷贝功能
public class DeepCopy implements Cloneable{
    private int id;
    private String name;
    private String school;

    @Override
    protected Object clone()  {
        DeepCopy deepCopy = null;
        try {
            Random r = new Random(1);
            deepCopy = (DeepCopy)super.clone();
            deepCopy.id = r.nextInt(100);
            deepCopy.name = this.name;
            deepCopy.school = this.school;
        }  catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return deepCopy;
    }
}

public static void main(String[] args) {
	// write your code here
	DeepCopy deepCopy = new DeepCopy();
	deepCopy.setId(1);
	deepCopy.setName("zs");
	deepCopy.setSchool("一中");
	Object clone = deepCopy.clone();
	System.out.println(deepCopy.toString());
	System.out.println(clone.toString());
}
//输出结果
DeepCopy{id=1, name='zs', school='一中'}
DeepCopy{id=85, name='zs', school='一中'}

posted on 2020-12-10 17:51  刚出锅的奶酪  阅读(441)  评论(0编辑  收藏  举报