Javaでオブジェクトのクローンを実現する方法は何ですか?

Javaでオブジェクトのクローンを実装する方法には次のようなものがあります:

  1. Cloneable インターフェースを実装し、clone メソッドをオーバーライドしてください。
  2. MyClassクラスはCloneableを実装しており、clone()メソッドをオーバーライドしています。このメソッドでは、スーパークラスのclone()メソッドを呼び出しています。
  3. Objectクラスのcloneメソッドを使用し、クラス内でsuper.clone()メソッドを呼び出す。
  4. MyClassというクラスにおいて、cloneメソッドをOverrideして、CloneNotSupportedExceptionをスローする場合、super.clone()を返すようにしました。
  5. オブジェクトのクローンを実装するために、シリアライズとデシリアライズを使用します。
  6. public class MyClass implements Serializable {
    public MyClass clone() {
    try {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos);
    oos.writeObject(this);
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    ObjectInputStream ois = new ObjectInputStream(bais);
    return (MyClass) ois.readObject();
    } catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
    return null;
    }
    }
    }
    を持つMyClassクラス

深いコピー(つまり、オブジェクトと元のオブジェクトが参照を共有しない)を実現したい場合は、cloneメソッド内で参照型のメンバー変数をクローンする必要があります。

bannerAds