处理枚举序列化的最佳实践

时间:2015-03-30 09:21:10

标签: java serialization enums

正如我们所知,当我们在项目中使用枚举时会出现一些序列化问题,尤其是在将代码部署到集群时:

我们无法在一秒钟内完成部署,某些已部署的服务器可能会将新项目写入会话,而另一个可能会读取它并发生反序列化异常。

我的问题是

  1. 处理此类问题的最佳做法是什么?
  2. 在运行时期间是否有一个语法糖或其他枚举用于String以避免这种情况。为什么不呢?

1 个答案:

答案 0 :(得分:0)

  

正如我们所知,当我们在项目中使用枚举时会出现一些序列化问题,尤其是在将代码部署到集群时:

我什么都不知道。

  

由于我们无法在一秒钟内完成部署,因此某些已部署的服务器可能会将新项目写入会话,而另一台服务器可能会读取该项目并发生反序列化异常。

无论枚举如何,这都是一个问题。除非管理得当,否则对课程的任何改变都有可能引发。

  

处理此类问题的最佳做法是什么?

与任何其他课程相同。 (1)避免改变,(2)当你不能改变时,要仔细管理。

  

在运行时期间是否有一个语法糖或者其他枚举用作字符串,以避免这种情况。

没有

  

为什么不呢?

我不认为代表Java作者,但序列化下的版本化已经非常明确。

如果您计划在枚举中添加值,则可能应该使用数据库表。