Java 枚举和 valueOf 反序列化

标签 java serialization enums

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

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

我不相信 valueOf 可以被覆盖,或者在反序列化过程中调用 valueOf 之前插入的另一个自定义方法。

有没有办法避免枚举的这个问题?

最佳答案

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

一种缓解方法是在敏感类中使用 readObject() 方法并捕获由于错误枚举值而导致的异常。

关于Java 枚举和 valueOf 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737851/

相关文章:

java - 如何在Android项目中命名getter/setter

c++ - 如何使用 boost XML 存档序列化 OpenCV Mat

c - 如何将类图 AVL 树序列化到磁盘?

Django REST 框架 : list of different serizalized objects?

enums - 枚举的 Kotlin Proguard 规则?

java - Resteasy 授权设计——检查一个用户是否拥有一个资源

Java 字符串初始化

java - 应该以静态方式访问静态字段

java - android新手需要了解 "?android:attr/actionBarSize"

C#,标志枚举,用于查找标志的通用函数