深复制工具类

1.    进行深复制的工具类

  浅拷贝(Object类中的clone()方法)是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝。

        深拷贝(或叫深克隆) 则是对对象及该对象关联的对象内容,都会进行一份拷贝。

package cn.xm.exam.utils;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * 深复制的工具类
 * 
 * @author Administrator
 *
 */
public class CloneUtils {
    @SuppressWarnings("unchecked")
    public static <T> T cloneObj(T obj) {
        T retVal = null;

        try {
            // 将对象写入流中
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(obj);

            // 从流中读出对象
            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
            ObjectInputStream ois = new ObjectInputStream(bais);

            retVal = (T) ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return retVal;
    }
}

 

上一篇:java – 当我运行给定的代码时,我得到A B A作为输出.我不明白为什么它再次打印A.


下一篇:量化交易基础【五】:获取context数据与条件判断