我有一个通用类,它需要能够克隆参数类型的对象。下面是一个非常简单的例子。编译器声称来自 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 设计者认为合理化其缺点等同于没有缺点的另一种情况?