我有一个添加到几个不同 ArrayList 的对象。我想避免更改每个列表,所以我试图更改指针以便更改所有列表。但是如果我想将对象设置为 null,我就无法让它工作。例如:
ArrayList<Point> list1 = new ArrayList<Point>();
ArrayList<Point> list2 = new ArrayList<Point>();
Point a = new Point(2, 3);
list1.add(a); list2.add(a);
此时,两个列表都有一个指向同一个对象的项目。值为“2、3”。如果我更改对象的值。然后两个列表都发生变化:
a.set(5,5);
现在两个列表都有一个值为“5, 5”的项目。但是,如果我尝试将该值设置为 null。
a = null;
现在 a
设置为 null,但是两个列表中的对象仍然是“5, 5”,而不是我想要的 null。我什至尝试向 Point
类添加一个方法以将其自身设置为 null。但我也无法让它发挥作用。如何仅通过更改指针来删除所有列表中的对象?
最佳答案
您可以更改引用变量持有的对象的状态,这将反射(reflect)在引用同一对象的所有变量中,但如果您更改引用变量的赋值,则只会影响该变量。引用的对象未更改——正如预期的那样。
关于java - 如何从指针中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038513/