内部包含映射的Java枚举?
我有以下列举。我需要按代码获取描述。我有下面的代码。它正在发挥作用,但还能改进吗内部包含映射的Java枚举?,java,java-7,Java,Java 7,我有以下列举。我需要按代码获取描述。我有下面的代码。它正在发挥作用,但还能改进吗 public enum Maps { COLOR_RED("ABC", "abc description"); private final String code; private final String description; private static Map<String, String> mMap; private Maps(String co
public enum Maps {
COLOR_RED("ABC", "abc description");
private final String code;
private final String description;
private static Map<String, String> mMap;
private Maps(String code, String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return code;
}
public String getDescription() {
return description;
}
public static String getDescriptionByCode(String code) {
if (mMap == null) {
initializeMapping();
}
if (mMap.containsKey(code)) {
return mMap.get(code);
}
return null;
}
private static void initializeMapping() {
mMap = new HashMap<String, String>();
for (Maps s : Maps.values()) {
mMap.put(s.code, s.description);
}
}
}
公共枚举映射{
红色(“ABC”、“ABC说明”);
私有最终字符串代码;
私有最终字符串描述;
私有静态映射mMap;
私有映射(字符串代码、字符串描述){
this.code=代码;
this.description=描述;
}
公共字符串getCode(){
返回码;
}
公共字符串getDescription(){
返回说明;
}
公共静态字符串getDescriptionByCode(字符串代码){
如果(mMap==null){
初始化映射();
}
if(mMap.containsKey(代码)){
返回mMap.get(代码);
}
返回null;
}
私有静态void initializeMapping(){
mMap=新的HashMap();
对于(映射s:Maps.values()){
mMap.put(s.代码、s.说明);
}
}
}
你的问题毫无意义。你到底想要什么?你的问题在这里可能更合适:我只需要知道我的枚举是否正确,是否可以改进..将此问题移至代码审阅