深度拷貝一個Java對象,無論這個對象裡面有什麼樣的參數,比如String、數組、Object類型,或者Object類型裡面又有Object類型的參數。
而且這個被拷貝的對象無須實現Serializable介面。
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * 複製操作類 * @author liguohui * */public class CloneOper {/** * 深度拷貝 * @param obj * @return */@SuppressWarnings("unchecked")public static <T> T deepCloneObject(T obj) {try {ByteArrayOutputStream byteOut = new ByteArrayOutputStream();ObjectOutputStream out = new ObjectOutputStream(byteOut);out.writeObject(obj);ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); ObjectInputStream in =new ObjectInputStream(byteIn); return (T)in.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return null;}}