枚举,单身和反序列化

时间:2012-11-04 15:01:35

标签: java enums singleton deserialization

枚举被认为是单身人士的最佳方式,其中一个原因是它隐含地继承了Serializable

但枚举如何防止单身人士的反序列化问题?

2 个答案:

答案 0 :(得分:7)

序列化机制在special, specific way中处理它们。但是,通过定义返回唯一实例的readResolve()方法,可以对传统单例进行反序列化。有关示例,请参阅http://www.oodesign.com/singleton-pattern.html

答案 1 :(得分:1)

序列化作为使用enum for singleton的参数是无稽之谈。

如果枚举单例是有状态的,则在序列化/反序列化期间状态会丢失。

如果单身人士是无国籍人,谁会关心自己的身份?