假设我有两个对象,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
?
答案 0 :(得分:1)
嗯......我刚回答了自己的问题。我没有意识到你可以将多个对象保存到单个文件中。我将aObj
和bObj
保存在单独的文件中,但只有将对象保存到同一文件时,引用保存才有效。希望这将节省一些时间。
答案 1 :(得分:0)
double equals(==)检查,如果两个对象相同。 您可以使用equals方法检查两个对象是否相等。
你也可以覆盖等于方法来提供你的自定义对象。