无法在java中的建议列表中看到clone()方法?

时间:2015-09-30 07:40:45

标签: java clone cloneable

当我打开Object class源代码时,我可以在其中看到clone()方法。

当我尝试在方法列表中看到clone()方法时,不会显示 (如果我创建object MyClass作为myClass并应用. dot operator,它会向我提供eclipse IDE中所有可用方法的建议,但它不会显示{{1}该列表中的方法!!)

clone()

为什么会发生????

3 个答案:

答案 0 :(得分:1)

如果您考虑official Oracle Java documentation for Object class,您会发现clone()方法受到保护,由于多态,此方法只能在同一个包或子类中,但不能在外部。

因此,该方法只能在<{1}}包中 ,在此类的所有子项中 但不是在宣布儿童的包裹中。尝试阅读this topic以提高您对java访问修饰符的理解

但这里有一个厚:你可以像这样覆盖这个方法

java.lang

之后,您可以在宣布您的班级 @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } 的同一个套餐中使用方法clone,但请准备好MyClass

您也可以使用自己的实现。只需实施CloneNotSupportedException界面并提供您自己的Clonable方法。

另外,如果你计划克隆对象必须等于你,你也应该覆盖clone方法。

祝你好运!

答案 1 :(得分:0)

也许您尝试克隆的对象的创建者将克隆方法设为私有。此外,您可能不应该依赖Eclipse自动完成功能,特别是如果您刚开始使用Java。

答案 2 :(得分:0)

java.lang.Cloneable接口必须由类

实现

MyClass实现了Cloneable。