Bootstrap

java 中如何clone一个对象

clone的目的是复制对象,复制的程度又有深复制、浅复制之分。具体有哪些实现方式?

  • java原生的方式

法1:使用object中的clone方法,属于浅复制。类需要实现cloneable接口

法2:使用序列化与反序列化,反序列化后生成新对象,属于深复制。类需要实现Serializable

  • 工具类

法1:使用Spring项目中的BeanUtils.copyProperties(source, target); 属于深复制。

法2:使用cglib包,效率比反射方式高。属于深复制。

final BeanCopier copier = BeanCopier.create(Student.class, Student.class, false);

 beanCopier.copy(student, studentcopy, null);

 

;