阅读量:0
在Java中,enum类型的序列化可以通过实现Serializable接口来实现。当一个枚举类实现了Serializable接口时,它的实例可以被序列化和反序列化。
例如,一个简单的枚举类可以如下所示:
import java.io.Serializable; public enum Day implements Serializable { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; }
在这个例子中,Day枚举类实现了Serializable接口,因此它的实例可以被序列化和反序列化。
要序列化一个枚举实例,可以使用ObjectOutputStream类的writeObject()方法,如下所示:
import java.io.*; public class EnumSerializationExample { public static void main(String[] args) { try { Day day = Day.MONDAY; ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("enum.ser")); out.writeObject(day); out.close(); } catch (IOException e) { e.printStackTrace(); } } }
要反序列化一个枚举实例,可以使用ObjectInputStream类的readObject()方法,如下所示:
import java.io.*; public class EnumDeserializationExample { public static void main(String[] args) { try { ObjectInputStream in = new ObjectInputStream(new FileInputStream("enum.ser")); Day day = (Day) in.readObject(); System.out.println("Deserialized enum instance: " + day); in.close(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }
通过实现Serializable接口和使用ObjectOutputStream和ObjectInputStream类,枚举类型的实例可以很容易地被序列化和反序列化。