import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CloneUtil {
private static final Logger logger = LoggerFactory.getLogger(CloneUtil.class);
public static <T> Map<String, T> cloneMap(Map<String, T> original) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(original);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
Map<String, T> m = (Map<String, T>)ois.readObject();
ois.close();
bais.close();
oos.close();
baos.close();
return m;
}
catch (Exception e) {
logger.error("", e);
return null;
}
}
public static <T> List<T> cloneList(List<T> original) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(original);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
List<T> l = (List<T>)ois.readObject();
ois.close();
bais.close();
oos.close();
baos.close();
return l;
}
catch (Exception e) {
logger.error("", e);
return null;
}
}
}
java深克隆List、Map的工具类
于 2023-10-24 10:24:28 首次发布