为什么Java的可克隆接口不是通用的?
Java 5 引入了泛型,它们被添加到包中的许多接口中。但是,没有得到泛型。我想知道为什么?java.lang
Cloneable
编辑:在回答@Jon和@litb的回答以及@Earwicker的评论时,我想可能是:Cloneable
public interface Cloneable<T> {
public T clone();
}
这里覆盖,给它一个协变类型。我相信这仍然是向后兼容的,并提高类型安全性。那么为什么不呢?T clone();
Object.clone()
编辑 2:从下面的答案(和评论)中可以看出,上面建议的界面会破坏向后兼容性。因为 is ,在接口中重写它将迫使所有实现者提供一个实现,类设计人员可能不希望这样做(即他们可能会选择保留它)。Object.clone()
protected
public
protected