枚举和valueOf的Java反序列化

时间:2010-09-17 18:13:13

标签: java serialization enums

我有一个带有可序列化枚举类的分布式系统,其常量可能因系统而异。

因为这些类可能不同,所以在对不存在的常量进行反序列化时可能会调用valueOf,从而引发运行时异常。

我不相信valueOf可以被重写,或者在反序列化期间调用valueOf之前自定义插入的另一个方法。

有没有办法通过枚举来避免这个问题?

1 个答案:

答案 0 :(得分:5)

主要问题是您的分布式系统上的内容不一致。最好的办法是先看看这个。

姑息治疗是在敏感类中使用readObject()方法,并捕获恶意枚举值的异常值。