パラメータタイプのオブジェクトを複製できるようにする必要があるジェネリッククラスがあります。非常に簡単な例を以下に示します。コンパイラは、Object型のclone()が表示されないと主張しています。
public class GenericTest<T extends Cloneable>
{
T obj;
GenericTest(T t)
{
obj = t;
}
T getClone()
{
// "The method clone() from the type Object is not visible."
return (T) obj.clone();
}
}
オブジェクトの整合性を維持するために発生しなければならないことが他にもあるので、呼び出し元にクローンを作成させたくありません。上記のコードは、クローンオブジェクトに関連して維持する必要のある他のデータのノイズがない問題の単なる例示です。
これを回避する方法はありますか、それともJavaの設計者がJavaの設計者が欠点を合理化することを、何も持たないことと同等と見なすケースの1つですか?