Java 类对象深拷贝方法

  1. Cloneable()接口&Serialized()接口
    Java中实现深拷贝的两种方式–——clone() & Serialized

  2. 通过反射机制

  3. 通过工具类
    注意不要引用错包
    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);
    
  4. 通过FastJson

    public static T convert(Object src, Class clazz) {
    	String json =JSON.toJSONString(src);
    	T object = JSON.parseObject(json, clazz);
    	return object;
    }
    

特别注意:
被拷贝对象内如果有属性是自定义类对象,则上述方法中只有json可以实现深拷贝,其余对于这个类属性都是浅拷贝。

你可能感兴趣的:(Java学习日常,Java)