下面的 java 枚举类的主体如何工作?

Lai*_*yad 3 java enums class constants

public enum ID {
 Player(),
 Enemy();
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了 Java 枚举的整个 oracle 文档,我知道它是如何工作的以及所有基础知识,但我对上述枚举类的主体一无所知是 Player () , Enemy () 常量吗?职能 ?还有这会返回什么 ID.Player();

And*_*ner 8

与常规类一样,如果您不声明显式构造函数,您将获得带有枚举的默认无参数构造函数。

语言规范

在没有构造函数声明的枚举声明中,隐式声明了默认构造函数。默认构造函数是私有的,没有形式参数,也没有 throws 子句。

在此之前,它还说:

枚举常量后面可以跟参数,这些参数被传递给枚举的构造函数......如果省略参数,则假定为空参数列表。

因此,这些只是枚举常量,显式调用隐式构造函数。这与省略().