How to get an enum value from a string value in Java?

前端 未结 27 2203
旧巷少年郎
旧巷少年郎 2020-11-21 10:53

Say I have an enum which is just

public enum Blah {
    A, B, C, D
}

and I would like to find the enum value of a string, for example

27条回答
  •  广开言路
    2020-11-21 11:56

    Fastest way to get the name of enum is to create a map of enum text and value when the application start, and to get the name call the function Blah.getEnumName():

    public enum Blah {
        A("text1"),
        B("text2"),
        C("text3"),
        D("text4");
    
        private String text;
        private HashMap map;
        Blah(String text) {
        this.text = text;
        }
    
        public String getText() {
          return this.text;
        }
    
        static{
          createMapOfTextAndName();
        }
    
        public static void createMapOfTextAndName() {
            map = new HashMap();
            for (Blah b : Blah.values()) {
                 map.put(b.getText(),b.name());
            }
        }
        public static String getEnumName(String text) {
            return map.get(text.toLowerCase());
        } 
    }
    

提交回复
热议问题