我有一个通用类,需要能够克隆参数类型的对象.下面是一个非常简单的例子.编译器声称来自Object类型的clone()不可见.
public class GenericTest
{
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的一个错误.反思是正确的方法
static Method clone = Object.class.getMethod("clone");
static public
T clone(T obj)
return (T) clone.invoke(obj);
标签:cloneable,java,generics
来源: https://codeday.me/bug/20190726/1543653.html