-
Cloneable()接口&Serialized()接口
Java中实现深拷贝的两种方式–——clone() & Serialized -
通过反射机制
-
通过工具类
注意不要引用错包
3.1. org.springframework.cglib.beans.BeanCopier.beancopier
3.2. commons-beanutils-1.9.4.jar:1. Beanutils: BeanUtils.copyProperties(obj, src); 2. PropertyUtils: PropertyUtils.copyProperties(obj, src); 3. ConvertUtils: Object object = ConvertUtils.convert(src, obj.getClass()); 4. BeanCopier BeanCopier beanCopier = BeanCopier.create(src.class, obj.class, false); beanCopier.copy(src, obj, null);
-
通过FastJson
public static<T> T convert(Object src, Class<T> clazz) { String json =JSON.toJSONString(src); T object = JSON.parseObject(json, clazz); return object; }
特别注意:
被拷贝对象内如果有属性是自定义类对象,则上述方法中只有json可以实现深拷贝,其余对于这个类属性都是浅拷贝。