一尘不染

如何确保序列化世界中的Java实例控件(无枚举)?

javascript

在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(){};
}

阅读 321

收藏
2020-09-27

共1个答案

一尘不染

您应该真正查看有效Java。关于Singleton的一章对此进行了一定程度的论述,而关于Typesafe Enum模式的一章无疑对实现方式产生了影响enum。

简短的答案是您必须实施readResolve。

2020-09-27