3

我想将一个 Java 对象保存到文件中(以便稍后进行单元测试)。我尝试过 JSON,但由于我不拥有我正在序列化的对象的类,因此反序列化变得比它值得付出更多的努力。(现有类的 getter 和 setter 被不同的类型重载,Jackson 无法弄清楚如何反序列化对象)

现在我正在探索其他途径(即序列化为二进制或其他格式)。我想知道是否有任何东西可以将 Java 对象转储到二进制/文件,以便反序列化变得微不足道。我知道您可以使用Serializable接口执行此操作,但是我不拥有这些不实现此接口的类,因此无法修改它们。

4

3 回答 3

7

您还可以使用不依赖于已实现接口的类的XStream 。Serializable

于 2013-01-14T12:27:06.363 回答
0

如果他们实现Serializable了您不需要拥有它们(也不需要修改它们),您可以使用 a 将它们写入文件ObjectOutputStream并使用 a 将它们读回ObjectInputStream

假设这些类有适当的 getter 和 setter,你应该没有问题这样做

于 2013-01-14T12:25:09.873 回答
0

您也可以使用Kryo。基准(这里这里)说它是最快的序列化/反序列化之一,并且使用的空间也更少。它也不需要Serializable实施。也就是说,我从未亲自使用过它。

于 2013-01-14T13:08:44.697 回答