bj123nimab 2009-02-23 14:16
浏览 237
已采纳

Object的clone方法到底怎么使用?

[code="java"]
public interface Controller extends Cloneable{

}
public class A {
public final Hashtable mapping = new Hashtable();
private Controller get(){
Controller controller = HandleMapping.mapping.get("controllerID");
return controller.clone(); //这里提示clone方法找不到
}
}

[/code]

请问 为什么会出现这种错误?怎么解决?
[b]问题补充:[/b]
[code="java"]private Controller get(){

Controller controller = HandleMapping.mapping.get("controllerID");

return controller.clone(); //这里提示clone方法找不到

} [/code]

我想问的是 controller.clone(); 为什么提示找不到 clone方法呢

接口也是一个对象,Object是所有对象的基类,而clone方法是在Object定义的.
[b]问题补充:[/b]
父类中的proteced方法 在子类中也能访问的

  • 写回答

4条回答 默认 最新

  • sz_lixu 2009-02-25 09:24
    关注

    [color=red]问题补充:
    父类中的proteced方法 在子类中也能访问的 [/color]
    这是没错,但你的代码是
    public class A {

    public final Hashtable mapping = new Hashtable();

    private Controller get(){

    Controller controller = HandleMapping.mapping.get("controllerID");

    return [color=red]controller.clone(); [/color]//这里提示clone方法找不到

    }

    }

    也就是你在A类要调用Controller 的protected方法,先看看它们的作用域吧

    建议改为这样
    public interface Controller extends Cloneable {
    public Controller clone() throws CloneNotSupportedException;
    }
    然后在Controller 的实现类里实现这个接口,这样你的调用就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?