最近工作遇到了需要将一个list的信息存于另外一个新的list中,再将新list中的部分字段做变换,再拿去ERP做校验。如果校验通过,就拿老的list继续往下走。这个时候就需要用到list的深拷贝了,话不多说,直接上代码:
/**
* List 深拷贝
* @param srcList
* @param <T>
* @return
*/
public static <T> List<T> depCopy(List<T> srcList) {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
try {
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(srcList);
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream inStream = new ObjectInputStream(byteIn);
List<T> destList = (List<T>) inStream.readObject();
return destList;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}