对您来说,最简单的方法仍然是使用序列化(IMO),但是要对类的序列化形式进行更多的思考(无论如何,您还是应该这样做)。例如:
- 明确定义SerialUID。
- 在适当的地方定义自己的序列化表格。
序列化的形式是该类API的一部分,应仔细考虑其设计。
因为我所说的几乎所有内容都来自有效Java,所以我不会赘述。取而代之的是,请您参考它,特别是有关序列化的章节。它会警告您您遇到的所有问题,并提供相应的解决方案:
http://www.amazon.com/Effective-Java-2nd-Joshua-
Bloch/dp/0321356683
话虽如此,如果您仍在考虑非序列化方法,请注意以下几点:
XML编组
正如许多人指出的那样,这是一个选择,但我认为您仍然会遇到向后兼容的相同问题。但是,通过XML编组,您有望立即捕获这些错误,因为某些框架可能会在初始化期间为您做一些检查。
往返YAML
我一直在想这个主意,但是我真的很喜欢YAML格式(至少是自定义的toString()格式)。但实际上,对您而言唯一的区别是您将编组为YAML而不是XML。唯一的好处是,YAML比XML更具可读性。相同的限制适用。



