JavaBean?に、clone()メソッドを実装する為には、全てのフィールド変数をDeep Copyしてやる必要があり結構大変。
ところが、このJavaBean?がSerialize出来れば事は簡単。Serializeして(つまりはbyte[]にして)再びObjectに戻してやればいい。
public class Foo implements Serializable, Cloneable { private int a; private String b; private Double c; /** * このオブジェクトのCloneメソッドです. * @return このオブジェクトのColne(DeepCopy) * @throws CloneNotSupportedException Cloneを作成出来なかった */ public final Object clone() throws CloneNotSupportedException { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(this); ObjectInputStream ois = new ObjectInputStream( new ByteArrayInputStream(bos.toByteArray())); return ois.readObject(); } catch (Exception ex) { // Should not happen throw new CloneNotSupportedException(); } } }