在 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(){};
}
最佳答案
你真的应该看看Effective Java .关于 Singleton 的章节在一定程度上解决了这个问题,并且有一章关于 Typesafe Enum 模式,这无疑对 enum
的实现方式产生了影响。
简短的回答是您必须实现 readResolve
。
关于java - 如何保证序列化世界中的 Java 实例控制(无枚举)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892304/