[英]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.