假设我有两个对象,ObjectA
和 ObjectB
。ObjectA
和ObjectB
都有一个字段,用于存储第三个类的实例,TestObject
。所有三个类都实现可序列化。
假设我发起一个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
保存在单独的文件中,但仅当您将两个对象保存到同一文件中时,引用保存才有效。希望这在未来可以节省一些时间。
双等号 (==) 检查,如果两个对象相同。可以使用 equals 方法检查两个对象是否相等。
您还可以重写等于方法以提供自定义对象相等检查。