说我有两个对象,ObjectA
和ObjectB
。 ObjectA
和ObjectB
都有一个字段,用于存储第三类的实例TestObject
。所有这三个类都实现了Serializable。
假设我启动了ObjectA
和ObjectB
:
TestObject test = new TestObject();
ObjectA aObj = new ObjectA(test);
ObjectB bObj = new ObjectB(test);
创建完成后,
aObj.getTestObject() == bObj.getTestObject()
返回true
。现在假设我使用Java序列化将aObj和bObj保存到文件中。然后,当我用反序列化将数据加载回
aObj.getTestObject() == bObj.getTestObject()
时,返回false
。我希望存储在aObj和bObj中的对象保持相同的对象,因此如何使用Java序列化来恢复它,即aObj.getTestObject() == bObj.getTestObject()
返回true
? 最佳答案
好吧...我只是回答了我自己的问题。我没有意识到您可以将多个对象保存到一个文件中。我将aObj
和bObj
保存在单独的文件中,但是只有将两个对象都保存到同一文件中时,引用保存才有效。希望这可以节省将来的时间。