【问题标题】:How to make sure a class object has it's own copy when cloned克隆时如何确保类对象具有自己的副本
【发布时间】:2016-07-09 13:55:39
【问题描述】:

我正在克隆 Java 中某个类的对象,当克隆某个类的对象时,该类的两个对象必须拥有自己的副本。

这个类中有多个方法,并且这两个对象都在不同的方法中,我想知道我将如何解决这个问题。

到目前为止,我只有:

    @Override
protected Object clone() {
    try {
        return super.clone();
    }
    catch (CloneNotSupportedException e) {
        throw new InternalError(e.toString());
    }
}

我是 java 新手,如果这个解释有点混乱,我很抱歉!

【问题讨论】:

    标签: object clone cloning


    【解决方案1】:

    真的不清楚你想做什么。 您是否希望克隆对象具有所有克隆对象的引用? 如果是,这可能是一个解决方案:

       private Array<Object> clones = new ArrayList<Object>();
      @Override
      protected Object clone() {
       try {
        Object clone = super.clone();
        clones.add(clone);
        return clone;
       }
       catch (CloneNotSupportedException e) {
        throw new InternalError(e.toString());
       }
      }
    

    【讨论】:

    • 所有的说明都是“你必须确保你的类对象的克隆副本有自己的以下对象的副本:”然后给我必须有自己副本的对象
    • 好吧,有道理,为什么还有数组呢?
    • 您要保存所有克隆的副本吗?还是只有一个?
    • 它说类的所有对象都必须被克隆,并且两个特定对象必须有自己的副本,但我不确定是否保存
    • 我还是没看懂你写的什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多