Java 枚举不存储新数据

Java enum doesnt store new data

我创建了一个小的 class 用于联系我们的内部 API。 我没有创建新连接和传递参数,而是使用 class 完成所有工作。 枚举是这样的

public enum EnumTypes {
    UpdateA("update",PostGetEnum.Post),
    UpdateB("update2",PostGetEnum.Post);
    private Map<String, String> values=new HashMap<String, String>();
 ....
    public void addValues(String name,String value) {
         values.put(name, value);
     }
    public Map<String, String> getValues() {
       return values;
    }
}

所以我正在创建一个这样的对象

EnumTypes test = EnumTypes.UpdateA;
        test.addValues("id", "1");

它工作得很好,除了我刚刚注意到的一些东西。当我像这样创建第二个对象时

EnumTypes test2 = EnumTypes.UpdateA;
        test2.addValues("id", "2");

他们都有相同的id。

System.out.println(test.getValues());
System.out.println(test2.getValues());

2
2

我做错了什么吗?

Enum 实例是 static 所以在 class-loading 时间只能创建一个实例,也许 Enum 不是你想要的。

考虑像使用 final static 字段一样使用枚举