保持变量的值分配给“this”

时间:2016-03-13 21:34:51

标签: java

我正在努力实现以下目标

Model model1 = this;
this.remove(index);
Model model2 = this;

然后我想比较model1model2,看看有什么变化。但是,只要我调用删除,model1也会更改。有没有办法让model1得到修复?我已经尝试了最终,它产生了相同的结果。我也尝试使用数组,这也没有用。

thisDefaultListModel

DefaultListModel的文档

https://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultListModel.html

1 个答案:

答案 0 :(得分:1)

当你这样做时

https://mymusic.az/signin?code=SOMECODE&scope=clouddrive%3Aread_all+clouddrive%3Awrite

您实际上是将对象引用Model model1 = this; 指向变量this。当你这样做

model1

您也在这样做,为变量Model model2 = this; 分配相同的this引用。在您的代码中,您最终会将model2thismodel1都指向同一个对象。通过哪个引用改变单个对象的状态无关紧要,它仍然是同一个对象,你将通过任何这些变量看到相同的状态。您实际需要的是复制所有相关状态变量的对象副本,通常称为副本深层副本,具体取决于您的具体要求。是否足以创建model2的新实例并将当前实例中的所有元素添加到新模型就足够了,或者您实际上也需要创建这些对象的副本,完全取决于您的用例。