java - 每次需要值时是否调用静态枚举初始值设定项?

标签 java hashmap

我正在考虑像这样使用带有静态初始值设定项的枚举:

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/

相关文章:

java - 如何在 Spring Integration 中从 TCP 读取流(消息)

java - 将 JSON 发送到 Rails

java - 如何下载受盗链保护的图片?

Java:如何使用 HashMap 的一对键

java - 在 ConcurrentSkipListMap Java 中插入空值

java - 为什么要在 HashMap 中为 getEntry 定义对象

ruby - 匹配哈希值,eql?返回 true,但是 has_key?返回假

java - 迭代并发Hashmap

javascript - 将 javascript 代码转换为 android 代码 - 如何在 POST 请求中添加引荐来源网址?

java - 如何在java中删除String数组中的所有元素?