枚举字段是该枚举类的一个静态常量对象,且用数组存储.
values实际上是调用clone方法,其会创建新数组,数组中放入所有枚举字段....构造函数前两个默认为枚举字段名称,以及所处的顺序.也就是Enum中的name与ordinal....大概意思是枚举类的序列化依靠的是name字段,序列化时转成对应的name输出,反序列化时再依靠valueOf()方法得到对应的枚举字段,从而保证了单例....并且枚举类的反序列化过程不可定制,入口封住后那么就能彻底保证单例.
那么为什么有很多公司禁止在二方库中返回值或者POJO使用枚举类呢?...使用建议
关于使用建议,参考阿里巴巴Java开发手册中的三条建议,以及笔者的一条建议
所有的枚举类型字段必须要有注释,说明每个数据项的用途。