【发布时间】:2018-08-05 08:45:19
【问题描述】:
为什么浏览 java.lang.Enum 源代码时看不到values 方法?我正在使用 Intellij 2017.1.1 和 JDK 1.8.0_131
还有,为什么这个方法是static?我本来希望是一个实例方法。
【问题讨论】:
为什么浏览 java.lang.Enum 源代码时看不到values 方法?我正在使用 Intellij 2017.1.1 和 JDK 1.8.0_131
还有,为什么这个方法是static?我本来希望是一个实例方法。
【问题讨论】:
您看不到它,因为它不是在 Enum 类上定义的,而是在 Enum 的特定子类(即您的 enum 的类)上定义的。
这是因为静态方法不是多态的:子类上的values 方法不会覆盖超类中的方法,而是隐藏它。
您可以通过反射方式获取类的枚举常量:
YourEnum.class.getEnumConstants()
【讨论】: