2011-05-10 105 views
1

我有一个方法,试图克隆一个类的实例(B)我已经writen.This方法在类A中调用,所以这种方法是不是在同一班,我正在尝试类克隆(B)。我正试图克隆impliments colneable。当我尝试编译我的代码时,我收到一条错误消息,它读取“clone()已经保护了Java.lang.Object中的访问权限,为什么会这样呢?java克隆错误

回答

0

您只能访问不同类型的受保护成员包如果在编译时类型你引用它通过或者是您自己的类或子类的表达。

检查这个link

+0

所以问题是A不是B的sublcass? – David 2011-05-10 02:56:14

+0

@David ...和A和B在不同的包中。 – 2011-05-10 02:59:34

1

如果您希望A类内的某些代码克隆类B的实例,则可以将A和B放在同一个包中,或者通过将其公开(而不是离开)来扩大对B.clone()的访问它的保护范围。)

此外,我会引用你的书由Josh Bloch Effective Java。我找到了第三章的PDF here