枚举的值()

Bog*_* T. 1 java enums

为什么我values在浏览java.lang.Enum源代码时看不到方法?我使用的是Intellij 2017.1.1和JDK 1.8.0_131

另外,这个方法为什么static呢?我本来希望是一个实例方法.

And*_*ner 5

您无法看到它,因为它没有在Enum类上定义,而是在特定的子类Enum(即您enum的类)上定义.

这是因为静态方法不是多态的:values子类上的方法不会覆盖超类中的方法,而是隐藏它.

您可以反射地获取类的枚举常量:

YourEnum.class.getEnumConstants()
Run Code Online (Sandbox Code Playgroud)