And*_*ell 8 java singleton enums annotations
正如布洛赫在第3项规定("强制使用私有构造函数或枚举类型的单身财产")的有效的Java第二版,单元素枚举类型是实现一个单身的最佳途径.不幸的是,旧的私有构造函数模式仍然非常普遍和根深蒂固,以至于许多开发人员在创建枚举单例时并不理解我在做什么.
// Enum Singleton类声明之上的简单注释有所帮助,但它仍然留下了另一个程序员可以稍后出现并向枚举添加第二个常量,打破单例属性的可能性.对于私有构造函数方法所具有的所有问题,在我看来,它比枚举单例更自我记录.
我认为我需要的是一个注释,它既声明枚举类型是单例,并且在编译时确保只有一个常量被添加到枚举中.像这样的东西:
@EnumSingleton // Annotation complains if > 1 enum element on EnumSingleton
public enum EnumSingleton {
   INSTANCE;
}
有没有人在任何地方的公共图书馆中为标准Java运行这样的注释?或者是我在Java当前的注释系统中要求不可能的东西?
UPDATE
我正在使用的一种解决方法,至少在我决定真正打扰我自己的注释之前,就是@SuppressWarnings("UnusedDeclaration")直接放在INSTANCE场地前面.它使得代码看起来与简单的枚举类型截然不同.