私はClonable
を実装し、いくつかのクラスコード、ドキュメントの状態に出くわした:私のクラスにCloneableを実装させる際のポイントは何ですか?
クラスは、それがフィールド - を作るためにそのメソッドのために合法的であるObject.clone()メソッドを示すために、Cloneableインタフェースを実装そのクラスのインスタンスのフィールドコピー。 Cloneableインタフェースを実装していないインスタンスでObjectのcloneメソッドを呼び出すと、CloneNotSupportedException例外がスローされます。 慣例により、このインタフェースを実装するクラスは、保護されたObject.cloneをパブリックメソッドでオーバーライドする必要があります。このメソッドのオーバーライドの詳細については、Object.clone()を参照してください。 このインターフェイスには、cloneメソッドが含まれていないことに注意してください。したがって、単にこのインタフェースを実装しているため、オブジェクトをクローン化することはできません。クローンメソッドが反映されても、それが成功するという保証はありません。
このクラスを実装する上でのポイントは理解できません。ドキュメントでは.clone
メソッドがインターフェイスに実装されていないため、実装する必要があります。なぜこのクラスを使うのですか?なぜ私はこのクラスを実装せずにオブジェクトコピーを作成するために私のクラスにメソッドcopyClass
を書き込んでいないのですか?
ありがとうございます。
クラスにはCloneableが実装されているため、組み込みのクローニングメカニズムを使用できるため、他のクラスでは独自のクローンメソッドを知らなくてもクローンを作成できます。はい、それはそれを管理するためのちょっと変わった方法ですが、部分的には下位互換性と関係しています。 –