我正在考虑像这样使用带有静态初始值设定项的枚举:
public enum MyEnum{
...
private static HashMap<X, Y> features;
static {
features.put(X, new (Y));
}
...
}
每次我需要从中获取值时,HashMap 是否都会重新初始化?
最佳答案
不,与所有静态 block 一样,它仅在类型初始化时执行。
所以这只会执行一次。
但是您应该影响 map 的值:您不会在我们看到的代码中这样做。你应该有
private static Map<X, Y> features;
static {
features = new HashMap<X, Y>();
features.put(X, new Y());
}
关于java - 每次需要值时是否调用静态枚举初始值设定项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373148/