Enum では、values() メソッドはどのように機能しますか?
values() メソッドの背後にあるロジックは何ですか?
私のプロジェクトでは、次のようにすべての列挙型データを Map にキャッシュします。
public enum Actions {
CREATE("create"),
UPDATE("update"),
DELETE("delete"),
ACTIVE("active"),
INACTIVE("inactive"),
MANAGE_ORDER("manage"),
;
private static Map<String, Actions> actionMap;
static {
actionMap = new HashMap<String, Actions>(values().length);
for(Actions action : values()) {
actionMap.put(action.getName(), action);
}
}
public static Actions fromName(String name) {
if(name == null)
throw new IllegalArgumentException();
return actionMap.get(name);
}
private String name;
private Actions(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
これは enum を使用するためのベスト プラクティスですか?