为什么枚举在java中可以不同地序列化

时间:2017-07-20 15:43:37

标签: java serialization

有很多关于枚举和序列化的文章,我也在阳光下阅读这篇文章,但是无法找到如何序列化它。

枚举常量的序列化与普通的可序列化或可外部化的对象不同。枚举常量的序列化形式仅由其名称组成;常量的字段值不在表单中。要序列化枚举常量,ObjectOutputStream会写入枚举常量名称方法返回的值。要反序列化枚举常量,ObjectInputStream从流中读取常量名称;然后通过调用java.lang.Enum.valueOf方法获取反序列化的常量,将常量的枚举类型与接收的常量名称一起作为参数传递。

任何例子都会表示赞赏。

1 个答案:

答案 0 :(得分:2)

所有枚举类型都隐式扩展已经实现Serializable的java.lang.Enum。因此,您没有采取任何具体行动,已经为您完成了。