Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';创建没有实例的枚举有什么用?_Java - Fatal编程技术网

Java 什么';创建没有实例的枚举有什么用?

Java 什么';创建没有实例的枚举有什么用?,java,Java,我正在通过enum阅读和实现场景。我想我们可以创建一个枚举 没有任何实例。这种枚举的实际用途是什么?其次Enum也可以实现 接口,但显然不能扩展类,因为它已经扩展了类Enum。创建不带实例的Enum有哪些实际优势? Ben零成员枚举实际上是Java社区的某个部分(最显著的是)使用的实用程序类惯用法。它们是保证类不被实例化或子类化的最简洁、最干净的方法 当然,在这样的枚举中不会有任何实例方法;只有静态类型。Enum是引用类型,如类或接口。这意味着你可以 我们要适应这个原则,“.枚举的成员在宇宙结束

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

零成员枚举实际上是Java社区的某个部分(最显著的是)使用的实用程序类惯用法。它们是保证类不被实例化或子类化的最简洁、最干净的方法


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

Enum
是引用类型,如
接口
。这意味着你可以
我们要适应这个原则,“.

枚举的成员在宇宙结束之前不一定是固定的。你可以添加新成员而不破坏二进制可比性。因此我可以想象,创建一个
枚举
是为了模拟一些概念,这些概念目前没有实例,但以后可能会添加一些实例


是否也可能为我们知道绝对不会有任何实例的概念创建
enum
?例如
enum NegativeNaturalNumber{}
?它能在程序中起到任何作用吗?谁知道,我们不能肯定地说。

哦,那样的话。但是很多面试官都会问这个问题。如果没有,为什么Java人会允许它?可能在某个地方有一些用途,我们不知道。另请看:你能举一个这样做的例子吗?我能想到m任何使用常规类的地方(例如,
java.lang.Math
),但我认为我从未见过这种情况。但它随后出现在javadoc的
enum
部分,这不一定是您要查找它的地方。最终(为了清楚起见)类+私有构造函数是此类用例的标准用法(虽然在功能上是等效的)。这是JDK中通常要做的事情(包括8).@arshajii
Math
对于
enum
@damo来说太老了,我承认我可能有偏见。我很久以前就读过这个话题,所以这个成语对我来说越来越流行。@benz因为它更简洁,而不仅仅是关于字符数:只要看到一个单词
enum
,你就可以立即放心,这个单词是s满足实用程序类的所有要求:没有子类化,没有实例化。它是关于程序员的精神负荷。当每一段项目代码都有这样的优雅时,总体效果是非常微妙的。