枚举的 values()

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

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


青春有我
浏览 121回答 1
1回答

智慧大石

您看不到它,因为它不是在Enum类上定义的,而是在Enum(即您enum的类)的特定子类上定义的。这是因为静态方法不是多态的:values子类上的方法不会覆盖超类中的方法,而是隐藏它。您可以反射性地获取类的枚举常量:YourEnum.class.getEnumConstants()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java