繁体   English   中英

为枚举创建唯一ID字段的最佳方法

[英]Best way to create a Unique ID field for an enum

从ENUM获取唯一ID并在重复执行程序之间保持一致的最佳方法是什么?

目前,我正在通过将ID传递给枚举构造函数来手动执行此操作。 我真的不想要这样做,因为我可以提供帮助。

另一个选择是使用为每个枚举值递增的静态字段。 问题是,如果以后我决定移动枚举字段或删除一些枚举字段,这将导致程序出现问题,因为ID将保存到用户首选项中。

ID可以是任何基本类型或字符串。

可能太简单了,但是“类名+枚举名”又怎么了?

只需将此方法添加到您的枚举即可:

public String getID() {
  return getClass().getName() + "." + name();
}

创建枚举时,您可以执行以下操作:

public enum myEnum {
    VAL1("v1"), VAL2("v2");

    private String id;

    private myEnum(String id) { this.id = id };

    public getId() { return id;}
}

或者,您可以使用每个枚举都具有的name(),它返回声明的名称,在这种情况下为“ VAL1”或“ VAL2”。 两者都是做自己想要的事的有效方法。 当您说将id传递给构造函数时,这就是您的意思,如果是,请说明为什么这对您没有帮助。

枚举的名称将保持不变。 您不应该设置其他值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM