将字符串与一组值进行比较并返回值的最佳方法

Pat*_*tan 0 java

我写了一个方法.我想基于类返回员工类型.

我在想这里是否有更好的标准实施方案.

public static EmployeeType decideEmployeeType(String className)
    {
        if(className.equalsIgnoreCase("A") || className.equalsIgnoreCase("1"))
        {
            return EmployeeType.ADMIN;
        }            
        else if(className.equalsIgnoreCase("S") || className.equalsIgnoreCase("2"))
        {
            return EmployeeType.SERVICE;   
        }
        else
        {
            //throw exception
        }
    }
Run Code Online (Sandbox Code Playgroud)

有人建议,更好的方法.

bip*_*lav 5

我可以给出一个代码示例,通过更改常量可以轻松扩展,而不会妨碍业务逻辑:

private static HashMap<String, EmployeeType> employeeTypeTranslations = new HashMap<String,EmployeeType> () {{
  put("a",EmployeeType.ADMIN);
  put("s",EmployeeType.SERVICE);
  put("1",EmployeeType.ADMIN);
  put("2",EmployeeType.SERVICE);

}};

public static EmployeeType decideEmployeeType(String class) {
        employeeTypeTranslations.get(class.toLowerCase());
    }
Run Code Online (Sandbox Code Playgroud)

这允许您将来可以将此映射外部化为属性文件或XML或其他内容.