后来出现了《Effective Java》一书。我们现在知道,反射的存在破坏了具有私有构造函数的单例类的独特性。而使真正的SINGLEton的唯一方法是将其作为枚举的单个项。很好。我自己也用过这种方式。
但问题依然存在:虽然我们不能从枚举中继承,但这个单例有什么用呢?为什么我们不使用那些老旧的好的静态/类字段和方法呢?
编辑。感谢@bayou.io,我看到在https://softwareengineering.stackexchange.com/a/204181/44104中有一个代码可以欺骗枚举,并再次创建两个示例的枚举单例。其他问题也在那里提到。那么,是否也没有必要使用枚举而不是通常的单例类模式呢?顺便说一下,目前为止提到的所有枚举加号都适用于单例类。