1

所以我想为我拥有的一些类编写自定义序列化程序。我需要两种格式,一种是人类可读和可编辑的 yaml 格式,另一种仅供内部使用,可以是二进制的。我知道 Externalizable,但由于我有两种格式,我不确定这是否合适。

理想情况下,我希望将自定义序列化程序作为单独的包中的单独类。这是因为如果我编写一个通用序列化程序,我想将它用于所有类,而不仅仅是特定包内的类。我也想远离 JavaBeans,因为我不会总是有代码访问我想要序列化的类。

但这是我卡住的地方,我想访问类中的私有变量,我知道我可以使用反射“禁用”私有变量,但这不会阻止我在许多 java 系统上运行它,因为安全?

我应该如何编写我的通用序列化程序?

4

1 回答 1

1

编写您自己的自定义可序列化。对于二进制编码,使用 Java 的序列化。为了将其编码为人类可读的格式,您可以将您的类转换为 JSON/XML 格式。GoogleGson库可用于将 Java 类转换为 JSON,反之亦然。

因此,要编写您的通用序列化,请结合使用 Java 的内置序列化 API 和您自己的技术将对象转换为人类可读的格式。

更新

您可以使用反射技术来创建您自己的自定义人类可读格式的对象。有关反射的详细信息,您可以阅读我的博客

于 2013-05-03T18:12:05.723 回答