我正在查看文档和源代码,因为我想确定values()将始终按照枚举值的声明顺序返回一个数组。结果,据我所知,这在文档中似乎不是这样。
我检查了Enum类的源代码,但没有发现(有一个相关的私有“getValues”方法)。
因此,我猜测编译器/解释器可能已经创建了一个扩展Enum类的类,如下所示的声明:
那么values()方法在编译期间是否也被静态地转换为硬编码数组?还是它实际上是在运行时调用的方法,如果是这样,它在哪里定义?
我检查了Enum类的源代码,但没有发现(有一个相关的私有“getValues”方法)。
因此,我猜测编译器/解释器可能已经创建了一个扩展Enum类的类,如下所示的声明:
public static enum MyEnum
那么values()方法在编译期间是否也被静态地转换为硬编码数组?还是它实际上是在运行时调用的方法,如果是这样,它在哪里定义?