在Java中,枚举类默认是实现了Serializable接口的,因此可以直接进行序列化操作。在进行序列化时,可以使用ObjectOutputStream来将枚举对象写入输出流,然后使用ObjectInputStream来读取枚举对象。
下面是一个示例代码:
import java.io.*; enum Color { RED, GREEN, BLUE } public class EnumSerialization { public static void main(String[] args) throws IOException, ClassNotFoundException { Color color = Color.RED; // 序列化 FileOutputStream fos = new FileOutputStream("color.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(color); oos.close(); // 反序列化 FileInputStream fis = new FileInputStream("color.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Color deserializedColor = (Color) ois.readObject(); ois.close(); System.out.println("Original color: " + color); System.out.println("Deserialized color: " + deserializedColor); } }
在上面的示例中,首先定义了一个枚举类Color,然后创建了一个Color.RED的枚举对象进行序列化和反序列化操作。在输出中可以看到序列化前后的枚举对象是相同的。