在Java 1.5之前的世界中(尚无enum),并且我的对象已被序列化,如何执行适当的实例控制?我说的是这样的类,据我所知,我不确定instance0和instance1将始终是唯一的实例。
import java.io.Serializable; public final class Thing implements Serializable { private static final long serialVersionUID = 1L; public static final Thing instance0 = new Thing(); public static final Thing instance1 = new Thing(); private Thing(){}; }
您应该真正查看有效Java。关于Singleton的一章对此进行了一定程度的论述,而关于Typesafe Enum模式的一章无疑对实现方式产生了影响enum。
Singleton
Typesafe Enum
简短的答案是您必须实施readResolve。