XStreamを利用して簡単にディープコピー
XStreamで書き出し→読み込みすれば、どんなオブジェクトでもディープコピーできるんだなあ。
import com.thoughtworks.xstream.XStream; public class CopyUtils { public static <T> T deepCopy(T obj) { XStream xs = new XStream(); return (T) xs.fromXML(xs.toXML(obj)); } }
XStreamなら、対象のオブジェクトがSerializableを実装していなくても書き出せるのがポイントですね。