----
枚举类是Java5引进的特性,其目的是替换int枚举模式或者String枚举模式,使得语义更加清晰,另外也解决了行为和枚举绑定的问题.
int枚举模式
在枚举类之前该模式被广泛使用,如果是int...如何与行为绑定
从反编译的代码来看枚举类是可以实现接口的,那么就可以利用接口定义行为,然后枚举类中覆盖行为.同样假设每一个枚举字段所对应的行为不同,那么直接内部覆盖掉也是很好的策略,这种情况下也叫策略枚举模式...序列化问题
在JDK序列化方式中,ObjectInputStream类中有如下注释:
Enum constants are deserialized differently than ordinary...并且枚举类的反序列化过程不可定制,入口封住后那么就能彻底保证单例.
那么为什么有很多公司禁止在二方库中返回值或者POJO使用枚举类呢?...IllegalArgumentException异常,直接导致返序列化失败,那么本次调用就会失败.这种行为主要出现在对于同一个二方库新版本新增枚举类字段,服务端升级了版本,而客户端端没升级版本,那么整个流程自然会在服务端处理完成后造成失败