深拷贝
1.Apache旗下的Commons-Lang3包有一个序列化的工具SerializationUtils,可以做深拷贝。当然前提是你的类实现了序列化接口。
SerializationUtils.clone(Serializable object)
2.Java Deep Cloning Library是我觉得最好用的一个。它的深拷贝通过反射实现,适合用于你不能控制的第三方类或者没有实现序列化的类。
https://github.com/kostaskougios/cloning
浅拷贝
1.Apache旗下,不过不是Commons-Lang3,而是Commons-Beanutils。其中BeanUtils提供了一个cloneBean方法。但对象的属性需要get/set方法
Object o2 = BeanUtils.cloneBean(o1);
2.如果项目依赖了Spring的库,那么直接使用BeanUtils即可。