我在Java中遇到问题:
我有一个界面:
public interface I extends Cloneable {
}
和一个抽象类:
public abstract class AbstractClass {
private I i;
public I i() {
return (I)(i).clone();
}
}
但clone()的使用会产生以下错误:
方法clone()未定义 类型I
有没有人有任何想法如何解决这个问题?我发现的唯一修复是向我添加一个新方法:(我newI())将克隆I.是否有更清洁的解决方案?
感谢。
答案 0 :(得分:7)
您需要覆盖clone()
方法为公开
public interface MyI extends Cloneable {
public MyI clone();
}
相当奇怪,Cloneable
实际上并不包含clone()
方法,clone()
protected
Object
{{1}}在SO
答案 1 :(得分:2)
如果你改变会发生什么:
return (I)(i).clone();
到
return ((I)i).clone();