Java 可克隆或复制构造函数,为什么我要使用其中任何一个?这些策略实际上有什么作用?

标签 java spring jakarta-ee copy-constructor cloneable

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

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

我与前顾问交谈,他提到这将使我们能够明显地链接方法。喜欢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 可克隆或复制构造函数,为什么我要使用其中任何一个?这些策略实际上有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770169/

相关文章:

java - CPLEX java - 多维数组的等式约束

java - Jackson ObjectMapper在Spring中的生命周期

Java 门户组件 API

java - Jasper Report用Struts2框架生成RTF格式

java - 内存读取速度与简单算术和条件

java - 使用 Spring security 3 仅使用用户名对 REST 用户进行身份验证

spring - 无法将类型 [com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle] 的值转换为所需类型 [javax.jms.ConnectionFactory]

spring - 有什么理由使用接口(interface)(Java EE 或 Spring 和 JPA)

spring - 缓存结果集

java - 竞赛条件:整数的最小和最大范围