I've defined an enumerated class "TestEnvEnum", and I've defined a class "ConfigInit" that calls the enumerated class.
public enum TestEnvEnum {
ENV1("devEnv1"),
ENV2("devEnv2"),
ENV3("devEnv3");
private final String name;
TestEnvEnum(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
}
public class ConfigInit {
static String envIndex = "1";
static String envProps = System.getProperties().getProperty("env");
public static void scfInit() {
switch (envProps) {
case TestEnvEnum.ENV2.name(): //error: Constant expression required
envIndex = "2";
break;
case TestEnvEnum.ENV3.name(): //error: Constant expression required
envIndex = "3";
break;
default:
envIndex = "1";
}
}
}
Question: If I using Enum, so case TestEnvEnum.ENV2.name() and case TestEnvEnum.ENV3.name() will prompt "Constant expression required".
If I changed them to case "devEnv2" and case "devEnv3", the program will run correctly.
I want to know how I should use Enum in my program to avoid such an error. Pls help me.