为了序列化大型枚举实例,我正在考虑使用“序列化代理”,其中代理对象将是一个非常小的对象,唯一地标识相应的枚举实例。但是我发现枚举忽略了任何读/写对象或解析/替换方法。所以我的问题是,我将如何有效地序列化大型枚举实例?字符串/XML 表示是可能的,但我的感觉是这将是一个维护问题。
问问题
409 次
1 回答
3
您正在重新发明 Java 序列化默认情况下已经完成的工作:
引自 http://docs.oracle.com/javase/1.5.0/docs/guide/serialization/relnotes15.html:
5.0 版中新增了对序列化处理枚举类型的支持。序列化枚举实例的规则与序列化“普通”可序列化对象的规则不同:枚举实例的序列化形式仅包含其枚举常量名称以及标识其基本枚举类型的信息。反序列化行为也不同——类信息用于查找适当的枚举类,并使用该类和接收到的常量名称调用 Enum.valueOf 方法,以获得要返回的枚举常量。
于 2012-04-18T09:34:40.810 回答