最佳答案
在 Java 中,您可以创建如下枚举:
public enum Letter {
A, B, C, D, E, F, G;
static {
for(Letter letter : values()) {
// do something with letter
}
}
}
这个问题涉及到“ value ()”方法。具体来说,它是如何实现的?通常,我可以在 Eclipse 中使用 F3或 CTRL + C 单击跳转到 Java 类的源代码(甚至可以跳转到类 String、 Property、 Integer,甚至 Enum)。可以查看其他枚举方法(例如 valueOf (String))的源。
“ values ()”是否在每次调用时都创建一个新数组?如果我将它分配给一个局部变量,然后修改其中一个元素,会发生什么(显然这不会影响 value ()返回的值,这意味着每次都会分配一个新数组)。
它的代码是本地的吗?或者 JVM/编译器对它进行特殊处理,只在无法证明它不会被修改时从 value ()返回一个新实例。