克隆对象,更改某些值并将其添加到arrayList时,值是否会更改?

时间:2017-06-06 05:26:55

标签: java arraylist

段:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div>
  <h2>Main</h2>
  <p> Content goes here</p>
  <img src="someimg.jpg"/>
  <h2>Main2</h2>
  <p> Content goes here</p>
  <img src="someimg.jpg"/>
  <h2>Main3</h2>
  <p> Content goes here</p>
  <img src="someimg.jpg"/>
</div>

问题:

向ArrayList添加元素时,数据是正确的。将每个新元素添加到列表后,前一个元素的某些数据将被更改。为什么会这样?

1 个答案:

答案 0 :(得分:0)

clone()方法的默认版本创建对象的浅表副本。对象的浅表副本将具有原始对象的所有字段的精确副本。如果原始对象具有对其他对象的任何引用作为字段,则仅将这些对象的引用复制到克隆对象中,不会创建这些对象的副本。这意味着通过克隆对象对这些对象所做的任何更改都将反映在原始对象中,反之亦然。您可以检查一下克隆过程