gpt4 book ai didi

java - Enum.values() 从何而来?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:51 26 4
gpt4 key购买 nike

我正在查看文档和源代码,因为我想确定 values() 总是会按照声明枚举值的顺序返回一个数组。事实证明,这不是 in the documentation据我所知。

我检查了 Enum 类的源代码,没有运气(there is a related, private "getValues" method)。

所以我猜测某些编译器/解释器-foo 已经在创建一个类,该类从声明中扩展 Enum,例如:

public static enum MyEnum

那么 values() 在编译期间是否也静态地转换为硬编码数组?或者它实际上是一个在运行时调用的方法,如果是,它是在哪里定义的?

最佳答案

values() 方法是 enum 类型定义的一部分。不要与 Enum 基类混淆。正式定义在 Section 8.9 of the JLS 中这确实指定返回的顺序与它们声明的顺序相匹配。

关于java - Enum.values() 从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com