h2pl/JavaTutorial

enum 关于序列化反序列化

lijinxiong opened this issue · 1 comments

https://github.com/h2pl/Java-Tutorial/blob/master/docs/java/basic/14%E3%80%81%E6%9E%9A%E4%B8%BE%E7%B1%BB.md

大概意思就是说,在序列化的时候Java仅仅是将枚举对象的name属性输出到结果中,反序列化的时候则是通过java.lang.Enum的valueOf方法来根据名字查找枚举对象。同时,编译器是不允许任何对这种序列化机制的定制的,因此禁用了writeObject、readObject、readObjectNoData、writeReplace和readResolve等方法。 我们看一下这个valueOf方法:

来源---http://www.hollischuang.com/archives/197

h2pl commented

正解!