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);