使用序列化恢复单个实例



假设我有两个对象,ObjectAObjectBObjectAObjectB都有一个字段,用于存储第三个类的实例,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

嗯...我刚刚回答了我自己的问题。我没有意识到您可以将多个对象保存到单个文件中。我将aObjbObj保存在单独的文件中,但仅当您将两个对象保存到同一文件中时,引用保存才有效。希望这在未来可以节省一些时间。

双等号 (==) 检查,如果两个对象相同。可以使用 equals 方法检查两个对象是否相等。

您还可以重写等于方法以提供自定义对象相等检查。

最新更新