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

前端 未结 27 2618
旧巷少年郎
旧巷少年郎 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:50

    Here's a method that can do it for any Enum, and is case insensitive.

    /** 
     * Finds the value of the given enumeration by name, case-insensitive. 
     * Throws an IllegalArgumentException if no match is found.  
     **/
    public static > T valueOfIgnoreCase(
            Class enumeration, String name) {
    
        for (T enumValue : enumeration.getEnumConstants()) {
            if (enumValue.name().equalsIgnoreCase(name)) {
                return enumValue;
            }
        }
    
        throw new IllegalArgumentException(String.format(
            "There is no value with name '%s' in Enum %s",
            name, enumeration.getName()
        ));
    }
    

提交回复
热议问题