溫馨提示×

Java枚舉值如何序列化

小樊
127
2024-07-23 12:44:05
欄目: 編程語言

在Java中,枚舉值可以通過實現(xiàn)Serializable接口來進行序列化。具體步驟如下:

  1. 在枚舉類中實現(xiàn)Serializable接口:
import java.io.Serializable;

public enum Color implements Serializable {
    RED, GREEN, BLUE;
}
  1. 使用ObjectOutputStream類將枚舉值序列化到文件中:
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class SerializationExample {
    public static void main(String[] args) {
        try {
            Color color = Color.RED;
            FileOutputStream fileOut = new FileOutputStream("color.ser");
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            out.writeObject(color);
            out.close();
            fileOut.close();
            System.out.println("Serialized data is saved in color.ser");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 使用ObjectInputStream類將序列化的枚舉值反序列化:
import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class DeserializationExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileIn = new FileInputStream("color.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            Color color = (Color) in.readObject();
            in.close();
            fileIn.close();
            System.out.println("Deserialized color: " + color);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

這樣就可以實現(xiàn)枚舉值的序列化和反序列化操作。需要注意的是,枚舉值在反序列化時必須是在同一個枚舉類中定義的,否則會拋出ClassCastException異常。

0