在Java中,您可以创建一个枚举,如下所示:
public enum Letter {
A, B, C, D, E, F, G;
static {
for(Letter letter : values()) {
// do something with letter
}
}
}
这个问题涉及“ values()”方法。具体来说,如何实施?通常,我可以在Eclipse中使用F3或CTRL + Click跳到Java类的源代码(甚至对于String,Character,Integer甚至Enum之类的类)。可以查看其他枚举方法的源(例如valueOf(String))。
每次调用“ values()”都会创建一个新数组吗?如果将其分配给局部变量,然后修改其中一个元素,则会发生什么情况(显然,这不会影响values()返回的值,这意味着每次都会分配一个新数组)。
它的代码是本地的吗?还是JVM /编译器对它进行了特殊处理,仅当无法证明不会对其进行修改时才从values()返回一个新实例。
心有法竹
largeQ
相关分类