BeanUtils对象复制(深度拷贝)终极工具类

对象复制工具类,实现方法如下:

复制对象(深度拷贝)
复制集合(深度拷贝)
复制对象到指定类(深度拷贝)
复制集合到指定类(深度拷贝)

POM



    uk.com.robust-it
    cloning
    1.9.12


    com.alibaba
    fastjson
    1.2.47
import com.alibaba.fastjson.JSON;
import com.rits.cloning.Cloner;

import java.util.ArrayList;
import java.util.List;

/**
 * Bean工具类
 * 参考 https://www.huangyunkun.com/2014/11/23/java-cloning-library/
 * https://juejin.im/entry/5bc3db04f265da0aaa053baa
 * @Date: 2018/12/20 17:12
 */
public class BeanUtils {

    private static final Cloner cloner = new Cloner();

    /**
     * 复制对象(深度拷贝)
     * @param object
     * @param 
     * @return
     */
    public static  T clone(final T object){
        if (object == null) {
            return null;
        }
        return cloner.deepClone(object);
    }

    /**
     * 复制集合(深度拷贝)
     * @param object
     * @param 
     * @return
     */
    public static  List cloneList(final List object){
        if (object == null) {
            return null;
        }
        return cloner.deepClone(object);
    }

    /**
     * 复制对象到指定类(深度拷贝)
     * @param object
     * @param destclas 指定类
     * @param 
     * @return
     */
    public static  T clone(final Object object, Class destclas){
        if (object == null) {
            return null;
        }
        String json = JSON.toJSONString(object);
        return JSON.parseObject(json, destclas);
    }

    /**
     * 复制集合到指定类(深度拷贝)
     * @param object
     * @param destclas 指定类
     * @param 
     * @return
     */
    public static  List cloneList(List object, Class destclas) {
        if (object == null) {
            return new ArrayList();
        }
        String json = JSON.toJSONString(object);
        return JSON.parseArray(json, destclas);
    }
}

参考原文:

https://www.huangyunkun.com/2014/11/23/java-cloning-library/
https://juejin.im/entry/5bc3db04f265da0aaa053baa

 

你可能感兴趣的:(工具使用)