在没有实例的情况下创建枚举有什么用?

ben*_*enz 8 java

我正在阅读并通过枚举实现场景.我想我们可以创建一个没有任何实例的枚举.这样的实际用途是Enum什么?其次Enum也可以实现一个接口,但显然不能扩展一个类,因为它已经扩展了类Enum.创建Enum没有实例的实际优势是什么?本

Mar*_*nik 11

零成员枚举实际上是Java社区的某个部分使用的实用程序类习惯用法(最值得注意的是Peter Lawrey).它们是最简洁的,可以说是保证类不被实例化或子类化的最干净的方法.

当然,在这样的枚举中你不会有任何实例方法; 只有静态的.

  • 你能举例说明这样的事情吗?我可以想到很多使用常规类的地方(例如`java.lang.Math`),但我不认为我曾经见过这个. (4认同)
  • 但它出现在javadoc的`enum`部分,这不一定是你想要的地方.最后一个(为了清晰起见)类+私有构造函数是IMO这种用例的标准习惯用法(虽然它在功能上是等价的).这通常是在JDK中完成的(包括8). (3认同)