【问题标题】:values() of a Enum [duplicate]枚举的 values() [重复]
【发布时间】:2018-08-05 08:45:19
【问题描述】:

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

还有,为什么这个方法是static?我本来希望是一个实例方法。

【问题讨论】:

    标签: java enums


    【解决方案1】:

    您看不到它,因为它不是在 Enum 类上定义的,而是在 Enum 的特定子类(即您的 enum 的类)上定义的。

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

    您可以通过反射方式获取类的枚举常量:

    YourEnum.class.getEnumConstants()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      相关资源
      最近更新 更多