package de.skuzzle.polly.tools.io;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class CopyTool {
@SuppressWarnings("unchecked")
public static <T> T copyOf(T root) {
FastByteArrayOutputStream buffer = new FastByteArrayOutputStream();
try {
new ObjectOutputStream(buffer).writeObject(root);
return (T) new ObjectInputStream(
new FastByteArrayInputStream(buffer)).readObject();
} catch (Exception e) {
throw new RuntimeException("clone fail", e);
} finally {
if (buffer != null) {
buffer.close();
}
}
}
private CopyTool() {}
}