Closed imaegoo closed 3 years ago
import java.io.Serializable; public enum SingletonEnum implements Serializable { INSTANCE; public void showMessage() { System.out.println("SingletonEnum"); } }
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class BreakSerializableSingleton { public static void main(String[] args) { SingletonEnum s1 = SingletonEnum.INSTANCE; SingletonEnum s2; try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("b.bin")); oos.writeObject(s1); oos.flush(); ObjectInputStream ois = new ObjectInputStream(new FileInputStream("b.bin")); s2 = (SingletonEnum) ois.readObject(); s1.showMessage(); s2.showMessage(); System.out.println(s1); System.out.println(s2); System.out.println(s1 == s2); } catch (Exception e) { e.printStackTrace(); } } }
SingletonEnum SingletonEnum INSTANCE INSTANCE true
Singleton class:
Test:
Result (output):