枚举类 反序列化
时间: 2023-06-22 16:24:02 浏览: 46
在 Java 中,枚举类可以通过实现 `java.io.Serializable` 接口来进行序列化和反序列化。以下是一个简单的例子:
```java
import java.io.*;
public enum Color implements Serializable {
RED, GREEN, BLUE;
public static void main(String[] args) throws IOException, ClassNotFoundException {
// 序列化
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("color.ser"));
oos.writeObject(Color.RED);
oos.close();
// 反序列化
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("color.ser"));
Color color = (Color) ois.readObject();
ois.close();
System.out.println(color);
}
}
```
需要注意的是,枚举类在序列化和反序列化时会使用枚举常量的名称,而不是序号或其他值。因此,如果您更改了枚举常量的名称或顺序,则可能会破坏序列化和反序列化的兼容性。