【EffectiveJava[11]】
<第 3 章 すべてのオブジェクトに共通のメソッド>
項目11:clone を注意してオーバーライドする
■著書からの要点抜粋
・finalではないクラスでcloneメソッドをオーバーライドするならば、
super.cloneにより得られたオブジェクトを返すべきです。
・実際には、Cloneableを実装しているクラスは、
適切に機能しているpublicのcloneメソッドを提供することが期待されています。
・cloneメソッドはもう一つのコンストラクタとして機能します。
cloneメソッドが元のオブジェクトに対してなにも害を及ぼしていないことと、
複製先に対して状態の不変式を適切に確立していることを保証しなければなりません。
・cloneのアーキテクチャは可変オブジェクトを参照しているfinalのフィールドとは両立しません。
・オブジェクトのコピーを行う何らかの代替手段を提供するか、
オブジェクトの複製を単に提供しないほうがおそらく賢明です。
■所感
最後の中点が結論かなぁと。
話に聞いた覚えはあるけど、確かにcloneしているとこはほとんど見たことない。
プロジェクトで用意されていればいいんだけど、、
- 作者: Joshua Bloch,ジョシュア・ブロック,柴田芳樹
- 出版社/メーカー: ピアソン・エデュケーション
- 発売日: 2001/12/03
- メディア: 単行本
- 購入: 5人 クリック: 124回
- この商品を含むブログ (105件) を見る