簡體   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