标签: java
Object类具有用于创建完全重复对象的clone方法。这个方法适用于每个类,但为什么我不能创建Object类的对象副本?这种行为背后有哪些Java概念?
我尝试了两种不同的情况,但它不起作用。它给出了编译时错误:Object类型的方法clone()不可见
Object o = new Object(); Object o2 = o.clone(); Object o = new Test(); // Some Test class Object o2 = o.clone();
答案 0 :(得分:6)
Object.clone()具有受保护的访问权限(这就是您收到错误的原因),因此无法像这样直接调用。您必须在自己的类中重写clone()并使该类实现Cloneable接口。
Object.clone()
clone()
Cloneable
从以下链接:
类Object本身并不实现Cloneable接口,所以 在类为Object的对象上调用clone方法 导致在运行时抛出异常。
有关详细信息,请参阅here。