【发布时间】:2011-11-19 05:56:56
【问题描述】:
要克隆对象,我是否需要实现“可克隆”接口。因为这里我的类是一个 jar 文件(我的意思是 API)。所以我无法编辑课程。我听说所有的类都扩展了基对象类,并且这个对象类实现了可克隆接口。这是否意味着我们可以直接克隆对象而不实现接口。如果是这样,在我的日食中,我没有任何克隆对象的选项。 有没有其他方法可以在不实现可克隆接口的情况下克隆对象。请解释。
【问题讨论】:
-
你为什么觉得你必须这样做?您最好告诉我们您正在尝试解决的整体问题,而不是您认为可能需要解决此问题的编程步骤。换句话说,你可能做错了事。
-
答案中的每个 cmets,我认为 OP 想要一个复制构造函数。
-
你好气垫船。在这里,我清楚地解释了我的问题。我有一个名为 XYZ 的类,我有一个方法返回这个 XYZ 类的对象。私人 XYZ getObject(){ 返回 obj;我通过调用此方法创建了一个对象。 XYZ obj1 = getObject();问题来了。实际上我想再创建一个对象而不再次调用该方法。我不能在这里编辑 XYZ 类。我想做 XYZ obj2 = (XYZ)obj1.clone();但我无法在我的 XYZ 类上实现“可克隆”接口。那么有没有其他方法可以为这个类再创建一个对象。
-
我想我可以把这个问题改写为,我们知道在 Object Class 中已经定义了 clone() 方法,并且每个对象都是 Object 类的子对象,那么:1.为什么我们还需要实现可克隆界面? 2. 有没有不实现Cloneable接口就可以克隆的对象?