import java.io.*;import java.util.ArrayList;import java.util.List;/** * @author lichujun * @date 2018/10/25 11:17 */public class Test { /** * 对象深度克隆 */ public static T clone(T obj, Class tClass){ T cloneObj = null; try (ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos)) { //写入字节流 oos.writeObject(obj); //分配内存,写入原始对象,生成新对象 try (ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bais)) { //返回生成的新对象 cloneObj = tClass.cast(ois.readObject()); } }catch (Exception e){ e.printStackTrace(); } return cloneObj; } /** * List深度克隆 */ public static List clone(List originList, Class tClass) { List desc = new ArrayList<>(); originList.forEach(it -> desc.add(clone(it, tClass)) ); return desc; } }复制代码