Java Cloneable或copy构造函数,为什么我会使用其中的任何一个?这些策略实际上做了什么? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Cloneable或copy构造函数,为什么我会使用其中的任何一个?这些策略实际上做了什么? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我的问题很漂亮,所以请原谅我的无知,因为我是一个菜鸟。

我遇到了一些顾问在我工作的公司写的代码。当我尝试深入研究代码时,我不知道为什么一个类实现了一些名为clonable的接口。所以我试图谷歌这个可克隆的混乱,我所看到的就是“不要使用它”或“使用复制构造函数”之类的东西。我不知道这些是什么。有人可以详细说明实际需要这种克隆的原因吗?我为什么要克隆一个对象?

我与前顾问交谈,他提到这将使我们能够明显地链接方法。像questionSet.dosomething().doAnotherThing().dowth();

public class QuestionSet implements Cloneable {
     ...

    /* (non-Javadoc)
     * @see java.lang.Object#clone()
     */
    @Override
    public QuestionSet clone() {
        return new QuestionSet(this);
    }

    ...
}
答案

它用于将对象传递给其他方的情况。如果对象是可变的并且你不想冒险让对方改变你的对象,你可以只给它一个克隆或副本而不是原始对象。

以上是关于Java Cloneable或copy构造函数,为什么我会使用其中的任何一个?这些策略实际上做了什么? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ArrayList实现

Java中的构造函数Constructor怎么用

Java 接口 Cloneable

请为CMyString类型编写构造函数copy构造函数析构函数和赋值运算符函数。

java中构造方法和拷贝构造方法是啥意思

java编程java对象copy