问题:
package GoodQuestions;
public class MyClass {
MyClass() throws CloneNotSupportedException {
try {
throw new CloneNotSupportedException();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
MyClass obj = new MyClass();
MyClass obj3 = (MyClass)obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
这里的类'MyClass'可以通过调用'Object'类中的clone方法来克隆它自己的对象。 当我尝试在同一个包 'GoodQuestions' 中的另一个类('TestSingleTon')中克隆此类('MyClass')时,它会引发以下编译时错误。
'Object类型的clone()方法不可见'
所以这里是它抛出上述错误的代码?
package GoodQuestions;
public class TestSingleTon {
public static void main(String[] args) {
MyClass obj = new MyClass();
MyClass obj3 = obj.clone(); ---> here is the compile error.
}
}
最佳答案
clone()
具有 protected 访问权限。在 MyClass
public Object clone(){
try{
return super.clone();
}catch(Exception e){
return null;
}
}
也改成public class MyClass implements Cloneable
关于java - 对象中的方法 clone() 不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116264/