深複製工具類

1.    進行深複製的工具類

  淺拷貝(Object類中的clone()方法)是指在拷貝對象時,對於基本數據類型的變量會從新複製一份,而對於引用類型的變量只是對引用進行拷貝。java

        深拷貝(或叫深克隆) 則是對對象及該對象關聯的對象內容,都會進行一份拷貝。工具

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;
    }
}
相關文章
相關標籤/搜索