2008-08-27 9 views
5

Javaでは、オブジェクトのArrayList(または任意のコレクション)をラップするクラスがあるとします。将来の変更を非表示にするJavaの戻りコピー

これらのオブジェクトの1つを返すと、呼び出し元はArrayListで作成されたオブジェクトの今後の変更が表示されません。

つまり、オブジェクトのディープコピーを返すが、クローン可能かどうかはわかりません。

答えて

4

スペックにそのターン:
- つまりオブジェクトがコレクション に入ることを許可するために、インタフェースを実装する必要がArrayList<ICloneable>()

ような何かそれから常に深いコピーを行うことが保証されます。インターフェイスには、深いコピーを返すメソッドが必要です。

私はあなたができる最高だと思います。

1

私はそれがovbious答えであると仮定します

複製可能であることをコレクションに保存されているクラスのための要件を確認します。挿入時または検索時に、それが意味を成すものを確認して例外をスローすることができます。

また、アイテムが複製可能でない場合は、参照渡しオプションにフェールバックするだけです。

関連する問題