1
我目前正在使用具有特定类的多个实例的代码。每个实例都运行某些任务,并收集发送到显示层的数据以供显示。发生的问题是,当创建类的新实例时,它会重置当前存在的该类的所有其他实例。这里,希望能说明我的观点使用Java实例化新对象会重置该对象的其他实例中的所有数据
Foo instanceFooOne = fooService.performActions(data);
Foo instanceFooTwo = fooService.performActions(data);
class FooService {
public void performActions(Object data) {
Foo foo = new Foo();
return foo;
}
}
要我举个例子,这应该有Foo对象的两个单独的实例,而是只针对创建的Foo对象的所有实例的最新版本的Foo。有没有办法不发生这种情况?
'Foo'中的字段可能是'static'吗? – Pshemo 2014-10-07 18:23:15
我敢打赌,你不会在'Foo'构造函数中创建'data'的新副本。这意味着您正在创建的两个“Foo”对象都存储对同一个“数据”的引用。如果你改变'data',所有'Foo'都会看到改变。 – azurefrog 2014-10-07 18:23:29
'foo'实例不同,但存储的'data'对象不是。 – EpicPandaForce 2014-10-07 18:25:24